为什么Tmin比Tmax多1位

时间:2020-10-12 18:08:38

标签: c

如果我错了,但在c中的64位计算机上,请纠正我,这些是tmax和min的值。

int tmax = 2147483647;
int tmin = -2147483648;

我想知道为什么tmin比tmax多1位。

1 个答案:

答案 0 :(得分:1)

是因为零。

32位二进制补码int可以表示的负数是-1到−2,147,483,648。
32位二进制补码int可以表示的负数是0到2,147,483,647。

每个确切有2 31

(另外,术语nitpick:2,147,483,648比一个2147,483,647多了一个,而不是一个一个。多一点的是4,294,967,294-两倍。)