按位与操作


按位与操作

文章插图
会有追加吗?首先 , 你的0376这个数字应该是8进制数吧 , 前面的0应该是八进制的识别符吧 。因此 , 0376的二进制就是1111 1110 , 二进制的与运算规则是 , 只有两个数同时为1时 , 则结果才为1 , 只要有一个数为0 , 则结果就为0 。比如1&1=1; 1&0=0; 0&1=0; 0&0=0; 因此把一个字符与二进制1111 1110进行与运算的结果就是把最后位设为0 , 而其他位不变 。作个比喻假设a的二进制表示为1010 0111我们先不管这个数表示的是什么 , 我们来把这个数与1111 1110进行按位与运算 , 看看结果 。1010 0111 & 1111 1110结果为 1010 0110可以看到只是把最后一位设为0了 , 其他位不变 。现在明白了? 补充回答:不会变为1 , 看来你还是没有明白按位与的运算规则啊 , 运算规则是两个数同时为1结果才为1 , 不是两个数相同 , 两个数相同为1的运算是按位异或 。也就是说按位与运算时 , 只要有一个操作数为0 , 计算结果就为0 , 理在懂了? 1010 0111 & 1010 0110结果为1010 0110明白了??
【按位与操作】

    推荐阅读