我想我卡在位操作那儿了……
是这样的,书中在介绍位操作出的例子中:输入一个unsigned 的整数a,
然后定义一个unsigned的b=1,为当成掩码,所以:unsigned b=1<<31,
接下来,用一个for循环来打印某个目的:
********
for(i=1;i<=32;i++) {
putchar(a & b ? '1':'0');
a<<=1;
if(i%8==0){putchar(' ');}
}
*************
输入65000,输出:00000000 00000000 11111101 11101000,
看不懂了,书中表示,a&b时,发生一些事情,除了最高位外,其余的都被屏蔽了,
掩码b的最高位是1,那么1 & 6的结果应该是1才对阿?
还是说,65000前面也自动对齐1了?,就是b=0000(略)0065000?这样说,输出了八个0就是说过去了,当1&6 ,输出1,当1&5,输出1,当1&0,输出0,接着,完了,对不上了,请问有人能帮我卡过这个坎吗?菜鸟求点睛