【发布时间】:2015-10-11 23:52:07
【问题描述】:
我正在寻找一种使用移位和按位运算符创建位掩码的通用方法,并注意左移溢出
例如。 0x80000000 类似于 (~0 >> 31)
更具体地说,0xAAAAAAA 和 0x55555555 是我正在努力解决的问题
【问题讨论】:
-
首先,使用无符号整数时无需担心溢出。其次,这种移位只适用于连续的设置位。
-
假设是 32 位(或更高)系统,0x80000000 == (1
-
@EOF 我正在使用已签名!
-
@Crowning:有这个神奇的构造:
(unsigned)whateverintvariable. -
@EOF 啊,谢谢!我不知道。但是,我不允许在我的作业中使用它,我很好奇如何去掩盖这种替代方式
标签: c bit-manipulation bitmask