标题:急!请教在何时加法溢出和减法溢出
只看楼主
andy09123
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-11-15
结帖率:0
已结贴  问题点数:20 回复次数:1 
急!请教在何时加法溢出和减法溢出

char a=127;
char b=a+1;
printf("%d",b);

输出为-128
不理解结果怎么为-128.何时溢出了?

搜索更多相关主题的帖子: 减法 加法 
2010-11-15 16:07
outsider_scu
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:430
专家分:1333
注 册:2010-10-21
得分:20 
因为字符型数据在计算机中是用一个字节即八位数据表示。又因为,这是有符号数,所以最高位弄成符号位,0表示正数,1表示负数,这成为带符号数
而带符号数在计算机中表示为补码,正数的补码是他的本身,负数的补码是其正数的补码变反加1,又因为0的符号位没有意义,所以,一个字节去掉符号位
可以表示范围是-128~127
127的二进制为01111111  加1后是10000000 而这篡改了原本最高位的符号位,符号位变成了1,所以就变成负数了。而这个负数恰好是-128的补码,也就是-128在计算机中带符号数的表示形式。  


编程的道路上何其孤独!
2010-11-15 22:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-325846-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.099908 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved