32767和-32768在C语言中有什么含义?

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/28 14:29:07
32767和-32768在C语言中有什么含义?
xS[OA+ƤA-k> %J|[Z/lԂE@* (,ؙɿ3;VL6s9|2>NxŒg6F iW4˞Ҏ>{~,>yx wۼC"w%U;,} 3Zn3k5Yt :9˻9wwNX>:{?/e陦w|xܨ`ۗ0;Dv_1FVHKYe.|ie:_?Zz;{3H/̽z9|b`. !y}["-=gI7R<4LtӖ$e+^-?M3ĺ_],UZ+SA˙srӉhIvwut -dun@G/"^c`E0-9hT2=R$J,?r\=GX뜭xC)nl]rj8р_Z36}/rϲTYV̮xd]E=a@֨:2AXPJi"a\pRADYhdl!"6)?;m.

32767和-32768在C语言中有什么含义?
32767和-32768在C语言中有什么含义?

32767和-32768在C语言中有什么含义?
说实在的,不是在C语言中,在C语言中没什么特别的地方.
在计算机体系结构里,可能引起人的误解是真的.
对于一个长度为16bit的有符号数,(32位、64位系统里面一般是signed short int,16位系统里面可以是signed short (早期版本int可以省略),或者unsigned),能够表示的最大值和最小值.
其实超出了也不影响什么,只是理解不同.
新版的编译器可以用
int16_t,VC用__int16也可以
看看下面的例子:
signed short x,y;
x=25000+10000;
y=x-5000;
printf("x=%d,y=%d\n",x,y);
y=30000是吧对吗?
x的值呢?x=35000(同余的符号不好打,就写等号吧)=35000-65536 =-30536
其实这个就是“正确结果”,这个结果在做计算的时候就是这样.
就好比你做数学题,6+7,如果做竖式,结果为3,进位为1.
这里面一样的,进位为1,结果-30536.