C语言位运算问题:求重置8位数右数第5位的AND掩码十进制值
位运算问题解答
AND掩码的8位十进制值为 239,推导过程如下:
- AND掩码的构造规则:需要保留的位对应掩码值为1,需要置0的位对应掩码值为0
- 定位目标位:位编号从右到左为1~8,第5位对应权重为
2^(5-1)=16,该位在8位二进制中为从左数第4位 - 构造8位二进制掩码:仅第5位设为0,其余位为1,得到二进制值
11101111 - 转换为十进制:
128+64+32+0+8+4+2+1 = 239
用题目给出的示例验证:原二进制数
10110001和掩码11101111做按位与运算后,得到结果10100001,和预期输出完全一致。
内容的提问来源于stack exchange,提问作者AbuabUcoddy
相关产品推荐
相关产品推荐

