c语言溢出问题,求解答。请详细解释。

日期:2022-04-03 08:22:13 人气:1

c语言溢出问题,求解答。请详细解释。

short是16位有符号整数,最大只能表示32767,即01111111 11111111。
+1后,变成10000000 00000000,这是-32768的补码形式,所以b输出为-32768
但对于a+1和b+1来说,编译器会自动把a,b都提升成长整型来进行计算,长整型是32位,32768在其范围内,不会溢出。所以a+1=32768是正确的。
而b的值在定义时就已经是10000000 0
    A+
热门评论