我有这个二进制数字
这是32位二进制数
0000 0000 0000 0000 0000 0000 xxxx yyyy
每0000让我们称之为“轻咬”
因此,我有这样的话:
1 2 3 4 5 6 7 8
现在
我想检查在第6个单词的最后一位是否有1或0
如果我有1,我想从给定的32位二进制数获得此数字
1111 1111 1111 1111 1111 1111 1111 1111
除此以外
我想获得这个号码
0000 0000 0000 0000 0000 0000 0000 0000
怎么做???
非常感谢提前!!!
答案 0 :(得分:1)
例如,-(x >> 8)
首先将位移位到LSB(如果它们可能非零,则屏蔽其余部分)。您现在拥有1
或0
。知道2的补码中的-1
是所有1
位,你只需要否定该值(注意这不是按位否定)。