这个c语句怎么解释?

来源:百度知道 编辑:UC知道 时间:2024/05/11 14:15:07
n = n & 0177
该语句将n中除7个低二进制位外的其他各位均设置0!
这句话怎么解释?

这里说明一点,第一位为0,后面表示的就是8进制数
&是按位与,每一位只有都为1的时候这一位才为1,
比如10&11=10
00&11=00
1110011&0010100=0010000

一个int型的数是2个字节,即16个位。

比如n是十进制的255,二进制是11111111,八进制的0177二进制是1111111
因此做按位与运算

0000000011111111 &
0000000001111111(注意,每一位对应看,上下都为1,结果才为1)

结果就是
0000000001111111即十进制的127

简化来说就是最后面的第七位以外的位都被清0

不知道有没有解释清楚,希望对你有帮助

按位与的关系,因为0177变成二进制是1111111,那么更高位都是0,与n的高位与的结果就是0,1&0 = 0;

0177的二进制为1111111
将n和二进制1111111按位相与,由此的得出将n中除7个低二进制位外的其他各位均设置0

因为0177变成二进制是1111111???
楼上抽了吧?