【发布时间】:2015-10-07 21:34:32
【问题描述】:
我怀疑为什么我们在signed int 中使用 -1 作为 11111111,而不是 10000001。因为我们了解到第一位用于指定符号,其余七位用于值。那么为什么设计师决定使用 -1 作为
[ first bit = 1 , Value by seven bits=127 ] 但不是 [ first bit = 1 , Value by seven bits=1 ]
【问题讨论】:
-
因为补码。
-
@Oliver:你能解释一下吗?
-
详细解释可见Wikipedia
-
或this question(重复?)
-
你在想的是'符号幅度'表示。这是一种有效的格式,但它不是最常见的(大部分情况下)——这是二进制补码表示法,它给出了您提到的
11111111格式。所有这些都假设您正在处理有符号的 8 位整数(又名signed char)。