How to check if an integer contains an even or odd number of bits set in C#

2 Answers

0 votes
using System;

class Program
{
    static void Main(string[] args)
    {
        int num = 42; // 00101010

        int result = CountBits(num) % 2;

        Console.WriteLine("0 = even number of bits set");
        Console.WriteLine("1 = odd number of bits set");
        Console.WriteLine("result: " + result);
    }

    static int CountBits(int n) {
        int count = 0;
        
        while (n != 0) {
            count += n & 1;
            n >>= 1;
        }
        
        return count;
    }
}



/*
run:

0 = even number of bits set
1 = odd number of bits set
result: 1

*/

 



answered Jul 27, 2025 by avibootz
0 votes
using System;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        int num = 42; // 00101010

        int result = Convert.ToString(num, 2)
                            .Count(c => c == '1') % 2;

        Console.WriteLine("0 = even number of bits set");
        Console.WriteLine("1 = odd number of bits set");
        Console.WriteLine("result: " + result);
    }
}



/*
run:

0 = even number of bits set
1 = odd number of bits set
result: 1

*/

 



answered Jul 27, 2025 by avibootz
...