c语言程序设计中将一个大于32767的长整数赋给整形变量,会得到什么结果?

如题所述

高位丢失,可能变负数。
例如:
long int i = 32799; //没问题
short int k = 32799; // 有问题
printf("%d, %d",i,k);

得:
32799, -32737
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-18
如果超过极限会从负的继续倒数 然后看看是 负几
第2个回答  推荐于2016-03-23
1、可能会丢失数据内容。对C语言来说,根据系统和C编译器的不同,基本整形变量的长度会有所不同。
2、基本整型是分正负值的,以16位来说,一个整型数据占2个字节,第0位至第14位的15位为数值,第16位用来区分正负,0为正1为负,如果前15位全
为1时,(0111,1111,1111,1111)比如十进制数为正的32767,如果此时加1得(1000,0000,0000,0000),此时第
15位为1,表示负数且是最大负数-32768,再加1得-32767以此类推
第3个回答  2010-03-18
没有任何变化,还是会输出32767.你可以写一个简单的程序看一下啊。
第4个回答  2010-03-18
会是个负数吧?