| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 790 人关注过本帖
标题:急!请教在何时加法溢出和减法溢出
只看楼主 加入收藏
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
快速回复:急!请教在何时加法溢出和减法溢出
数据加载中...
 
   



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

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