在C语言中,何为整型数的溢出?位操作符和移位操作符又是什么?
2个回答
展开全部
所谓的溢出是超出所能表示的范围了..比如说一个字节能表示的最大个数是2^8 - 1,当然没有算符号位..我们就按这种状态下来举例
溢出::::::
a = 11111111; 那a这个数已经把8位全部用1表示满了,这时候b = 00000001够小了吧,这个时候如果算c = a+b; 限定c只能用一个字节表示,那加完之后就会出现溢出情况,a已经不能再加了,再加也不会比它能表示的最大的数大了..同样的道理,C语言整数用几个字节表示跟CPU是多少位的也有关系的,当然也跟编译的软件有关系,超过整数所能表示的范围就叫溢出...
位移:::::::
楼上的已经写出来了...
溢出::::::
a = 11111111; 那a这个数已经把8位全部用1表示满了,这时候b = 00000001够小了吧,这个时候如果算c = a+b; 限定c只能用一个字节表示,那加完之后就会出现溢出情况,a已经不能再加了,再加也不会比它能表示的最大的数大了..同样的道理,C语言整数用几个字节表示跟CPU是多少位的也有关系的,当然也跟编译的软件有关系,超过整数所能表示的范围就叫溢出...
位移:::::::
楼上的已经写出来了...
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询