-1

我有这个二进制数
这是 32 位二进制数 0000 0000 0000 0000 0000 0000 xxxx yyyy
每 0000 我们称之为“半字节”。
因此我有这些词:
1 2 3 4 5 6 7 8
现在
我想检查第 6 个词的最后一位是 1 还是 0

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
怎么做???提前非常感谢!!!

4

1 回答 1

1

例如,-(x >> 8) 首先将位向下移动到 LSB(如果它们可能非零,则屏蔽其余的位)。你现在有10。知道-12 的补码是所有1位,您只需对值取反(注意这不是按位取反)。

于 2013-02-15T13:15:08.057 回答