C语言中数值溢出的问题
C语言中数值溢出的问题
日期:2017-11-26 09:40:03 人气:1
如果说短整型的长度是2个字节,
short int 的范围就是-32768~32767
32768比最大值多1,也就是变成最小值了。
你的计算也不对。
应该是这样计算的:32768是:1000 0000 0000 0000
要把这个补码求原码,即是补码-1再取反,然后加上负号。
1000 0000 0000 0000 -1=0111 1111 1111 1111
取反即是:1000 0000 0000 0000 (正数32768)
加上负号:-32768
所以结果是-32768