全部问题 > 当前问题

为什么短整型正数最大值是32767啊?两个字节,16位,最大值难道不是65536吗?

还有,为什么加一以后输出结果为负的32768啊?

#include <stdio.h>

Main()

{

Short a=32767;

Printf(“%hd\n”,a+1);

}


Q雅 2017-2-28 17:33:53

共 1 个回答

最佳答案

qqq 2017-3-1 13:51:32

16位的机器short的取值范围就是-32768~+32767,在上限上加1就会变成下限,也就是说short型数32767加上1就是-32768,而-32768减去1就是32767。