将一个长整型数赋给短整型变量,会有什么结果

如题所述

  对C语言来说,根据系统和C编译器的不同,基本整形变量的长度会有所不同。看下面图你会很容易理解

  基本整型是分正负值的,以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以此类推

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-10-08
在短整型所能表示的范围内数值没有影响,否则上溢而出现错误。计算机对下溢作0处理,对上溢则无法表示,如果程序没有对强制数据类型转换异常的监控,则直接报出内存错误而意外结束。本回答被提问者采纳
第2个回答  2009-10-07
编译器进行截断。
比如int 4字节赋值给short 2字节,会把int的高2个字节截断,只把低2个字节赋值给short
第3个回答  2009-10-08
sb
第4个回答  2009-10-07
可能会溢出