为什么8位字节中的〜1等于-2?

art*_*n41 1 c# math binary

我希望a,由于NOT 00000001会变成11111110,否则称为127,或者如果将最左边的位数作为符号,则使用-126,如果使用了符号和幅度.

即使在2s赞美的情况下,我也希望得到的结果是-127

为什么结果是-2?

Iri*_*ium 8

在两个补充:

-x = ~x + 1
Run Code Online (Sandbox Code Playgroud)

通过从两边减去一个,我们可以看到:

~x = -x - 1
Run Code Online (Sandbox Code Playgroud)

在你的例子中,如果我们设置,x = 1我们得到:

~1 = -1 - 1 = -2
Run Code Online (Sandbox Code Playgroud)