C语言中的整数表示
#include <stdio.h>
#include <limits.h>
int main()
{
unsigned short i = USHRT_MAX;
printf("max %d\n", i);
printf("max %s\n", (i+1 > USHRT_MAX)?"yes":"no");
printf("max %d, %d\n", i+1, ++i);
return 0;
}
运行之后结果如下:
max 65535
max yes
max 1, 0
不解之处: 1 根据打印出来的结果,i+1之后是1,但为什么i+1>USHRT_MAX?
2 i+1和++i结果为什么不一样?
当前项目完成之后,需要好好地研究机器中的整数表示。

浙公网安备 33010602011771号