1、下面这个函数输入197后的返回值是什么?这个函数的功能是什么?
int func(int n)
{
n = (n & 0x55555555) + ((n >> 1) & 0x55555555);
n = (n & 0x33333333) + ((n >> 2) & 0x33333333);
n = (n & 0x0f0f0f0f) + ((n >> 4) & 0x0f0f0f0f);
n = (n & 0x00ff00ff) + ((n >> 8) & 0x00ff00ff);
n = (n & 0x0000ffff) + ((n >> 16) & 0x0000ffff);
return n;
}
2、下面程序的输出是什么?为什么?
union Test
{
int a;
struct
{
char a;
char b : 1;
char c : 2;
char d : 3;
}b;
char c[4];
};
int main()
{
union Test t = {
0 };
t.b.a = 1;
t.b.b = 2;
t.b.c = 3;
t.b.d = 4;
printf("%02x %02x %02x %02xn", t.c[0], t.c[1], t.c[2], t.c[3]);
return 0;
}
3、下面程序输入9876543210的输出是什么?