如果我错了,请纠正我,但在 c 的 64 位机器上,这些是 tmax 和 min 的值。
int tmax = 2147483647;
int tmin = -2147483648;
我想知道,为什么 tmin 比 tmax 多 1 点。
这是因为零。
32 位二进制补码int
可以表示的负数是 −1 到 −2,147,483,648.
32 位二进制补码int
可以表示的非负数是 0 到 2,147,483,647。
每个正好有 231个。
(另外,术语吹毛求疵:2,147,483,648比2,147,483,647多一点,而不是多一点。 再多一点就是 4,294,967,294,是原来的两倍。