逻辑运算实施

时间:2013-02-15 12:17:50

标签: assembly binary

我有这个二进制数字
这是32位二进制数 0000 0000 0000 0000 0000 0000 xxxx yyyy
每0000让我们称之为“轻咬” 因此,我有这样的话:
1 2 3 4 5 6 7 8
现在
我想检查在第6个单词的最后一位是否有1或0

<00> 0000 0000 0000 0000 0000 0001 xxxx yyyy或
0000 0000 0000 0000 0000 0000 xxxx yyyy

如果我有1,我想从给定的32位二进制数获得此数字
1111 1111 1111 1111 1111 1111 1111 1111
除此以外 我想获得这个号码 0000 0000 0000 0000 0000 0000 0000 0000
怎么做??? 非常感谢提前!!!

1 个答案:

答案 0 :(得分:1)

例如,-(x >> 8) 首先将位移位到LSB(如果它们可能非零,则屏蔽其余部分)。您现在拥有10。知道2的补码中的-1是所有1位,你只需要否定该值(注意这不是按位否定)。