小编典典

按位补码运算符 (~ tilde) 是如何工作的?

all

为什么〜2等于-3?运营商是如何~工作的?


阅读 64

收藏
2022-06-22

共1个答案

小编典典

请记住,负数存储为正数 的二进制补码 。例如,以下是二进制补码中 -2 的表示:(8 位)

1111 1110

你得到这个的方法是取一个数字的二进制表示,取它的补码(反转所有位)并加一。两个从 0000 0010 开始,通过反转位我们得到 1111
1101。加一个得到上面的结果。第一位是符号位,表示负数。

那么让我们看看我们如何得到~2 = -3:

再来两个:

0000 0010

简单地翻转所有位,我们得到:

1111 1101

那么,二进制补码中的 -3 是什么样的?从正3开始:0000 0011,将所有位翻转为1111 1100,加1成为负值(-3),1111 1101。

因此,如果您只是将 2 中的位取反,您将得到 -3 的二进制补码表示。

补码运算符 (~) 只是翻转位。由机器来解释这些位。

2022-06-22