2025-11-20 05:31:54
int是32位整数,最高位当符号位,正数最大用完剩下的31位二进制数,所以是2的三十次方减一;负数用补码,最小值比正数最大值多一,所以是负二的三十次方。
因为二进制用补码表示负数,符号位和数值位共享32位空间,所以正数最大值是2的三十次方减一(等于),负数最小值是负二的三十次方(等于-)。比如正数最大是2的三十次方减一,因为一位只能放0;负数最小是负二的三十次方,因为补码需要符号位参与计算。比如2的三十次方等于,所以最大正数少1就是,而负数最小值刚好是它的相反数。这样设计既保证数值范围最大,又能用有限位数表示正负数。
本题链接: