【发布时间】:2013-10-04 13:03:27
【问题描述】:
我在考虑 int 的大小(有符号和无符号)。无符号整数的大小很容易计算,但是当涉及到有符号时,我感到困惑..如果 int 是 2 个字节,第 15 个字节是符号,那么它的大小是 32767,这是可以理解的.. 但是当我尝试计算-ve 至少我做了 1 1111111111111 ..(16 个)。忽略有符号位(第 16 位),值仍然是 32767,所以我得到范围 +32767 到 -32767(这不是正确的范围)。 或者这可能不是计算范围的正确方法,因为编译器会将其视为 -1。
那么 +32767 到 -32768 是如何计算的??
【问题讨论】:
-
它应该如何数学计算
-
您的机器可能正在使用二进制补码表示。
-
@jxh 是的,这不是 OP 的要求。
-
问你的问题:这些有多少个整数:
-1 to 1、-32767 to +32768和-32767 to +32767? -
@P0W 这也不是“独占与包含区间边界”的问题。 OP 对如何表示 2 的补码有错误的假设。