明解 C 中一个例题,窥探整数内部 ,很不明白,求大神指教。
程序目的:显示 unsigned 型内部的位串#include <stdio.h>
int count_bits (unsigned x)
{
int count =0;
while (x){
if (x &1U) count++;
x>>=1;
}
return (count);
}//书中说这是返回整数X中设置的位数。
int int_bits()
{
return (count_bits(~0u));
}
void print_bits (unsigned x)
{
int i;
for (i=int_bits()-1;i>=0;i--)
putchar (((x>>i)&1u) ? '1':'0');
}
int main ()
{
unsigned nx;
printf("请输一个非负整数:");
scanf("%u",&nx);
print_bits (nx);
putchar ('\n');
return 0;
}
请大神详细,举例说明啊,谢谢