CSAPP 练习2.12

这是一篇关于C语言和C++的掩码运算解题指南,涉及如何根据题目要求对变量x进行特定操作。题目给出了三个部分:A. 保留最低有效字节并清零其他位;B. 除最低有效字节外的位取反,最低位保持不变;C. 最低有效字节置1,其他字节不变。提供的解决方案分别是:A. x & 0xFF;B. ~(x ^ 0xFF) 或者 x ^ (~0xFF);C. x | 0xFF。这些表达式适用于字长至少为8位的情况,并给出了相应的二进制和十六进制计算步骤。
摘要由CSDN通过智能技术生成

关于掩码运算的题目

对于下面的值,写出变量x的C语言表达式。代码应该对任何字长w≥8都能工作。我们给出当x=0x87654321以及w=32时表达式的结果,仅供参考。

A.x的最低有效字节,其他位均为0。[0x00000021]。

B.除了x的最低有效字节外,其他位都取补,最低有效字节保持不变。[0x789ABC21]。

C.x的最低有效字节设置成全1,其他字节都保持不变。[0x876543FF]。

解答:

A. x & 0xFF

B. ~(x ^ 0xFF)或者x ^ (~0xFF)

C. x | 0xFF

对应的二进制和十六进制计算过程:

x
十六进制 ox   8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值