位运算问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 08:21:26
例题:有一个整型变量a,想只保留低字节(使高位全为零),应进行的运算是:
a=a&_____?
我就是不明白什么叫高字节,什么叫低字节?
标准答案是0377
我的答案是00001111

你的答案当然错了,整形有两个字节,16位二进制,你只给出了8位二进制。

题目也很模糊,它的答案也不科学,我们不说它。从你的答案看,位运算的道理你懂,操作你会,我们也不说。我说我对题目中“低字节”与“高位”的理解。

一般地说,“高位”往往是指二进制的一个字节里面的最高一位,也就是8个二进制位里面的左边第一位。而整形变量的低字节是指一个字节,即写出来的右边8个二进制位。

使高位为0,应该&一个0x7f7f,而只保留低字节应该&一个0x00ff,同时满足这两个条件的答案是0x7f。题目里面用了个括号,好像“高位全为零”是对“只保留低字节”的注解,我就不知道怎么做了。