首页 新闻 搜索 专区 学院

整型越界问题

0
悬赏园豆:5 [已解决问题] 解决于 2011-09-04 23:31

C++primer里说整型越界赋值是对可能取值数目求模后取其所得值。例如unsigned char x = -1;  那么结果是255。

但我写了以下程序,输出的不是254对应的字符,并且如果赋予a的正值超过128也会显示不正常,这是怎么回事?

unsigned char a;
 a=-2;
 cout<<a<<endl;

Auto_TZ的主页 Auto_TZ | 初学一级 | 园豆:195
提问于:2011-09-03 14:48
< >
分享
最佳答案
0

应该是这样吧:

unsigned int a = -2;
cout
<<a<<endl;
你是不是打错了,这样肯定要越界,输出异常!

收获园豆:5
hailong | 初学一级 |园豆:70 | 2011-09-03 21:04

恩,是打错了。打按照C++Primer的说法不是应该输出ASCLL码表的第254个字符吗?在VC 6.0下输出不是这样啊

Auto_TZ | 园豆:195 (初学一级) | 2011-09-03 21:09

@Auto_TZ 能解释下为什么会输出异常吗?多谢

Auto_TZ | 园豆:195 (初学一级) | 2011-09-03 23:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册