#include <stdio.h>
bool check1(unsigned int num)
{
bool odd = false;
while(num)
{
odd = !odd;
num = num & (num-1);
}
return odd;
}
bool check2(unsigned int x)
{
unsigned int val=0;
while(x)
{
val^= x&0x1;
x = x>>1;
}
return val&0x1;
}
int main()
{
for(unsigned int a = 0x33; a<0x55; a++)
printf("%x-->check1(%d), check2(%d)\n", a,check1(a), check2(a));
}
bool check1(unsigned int num)
{
bool odd = false;
while(num)
{
odd = !odd;
num = num & (num-1);
}
return odd;
}
bool check2(unsigned int x)
{
unsigned int val=0;
while(x)
{
val^= x&0x1;
x = x>>1;
}
return val&0x1;
}
int main()
{
for(unsigned int a = 0x33; a<0x55; a++)
printf("%x-->check1(%d), check2(%d)\n", a,check1(a), check2(a));
}