C语言中整型的取值范围的问题。
问①: “long 4字节(32位) 取值范围-2的31次方~(2的31次方-1) ”中,
为什么要-2的“31”次方,而不是“32”次方呢?
问②,“unsigned long 4字节(32位)取值范围0~(2的32次方-1)”中,
为什么要2的“32”次方,而不是“31”次方呢?
[解决办法]
区间[-2^31, 2^31-1]共有(2^31-1)-(-2^31) + 1 = 2^32个整数。