首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

字符变量即是128

2013-02-24 
字符变量等于128for(char a32a128a++)coutaaendl这个怎么会死循环呢。而改成a127就没有问题

字符变量等于128
for(char a=32;a<128;a++)
    cout<<"a="<<a<<endl;

这个怎么会死循环呢。
而改成a<127就没有问题。

当a=128时,出现了什么问题。

[解决办法]
char 类型,单字节 上下限值
[解决办法]
char 改成 unsigned char ;
否则, char 127+1 = 0x80 , 这个值是-128, 不是128
就成死循环了
[解决办法]
应该是char型变量占1个字节 也就是8个bit位  其中第一位作为符号位 还剩7位 全1时最大
01111111(b)=127 也就是最大是127 永远满足条件a<128 所以死循环了
或者简单点说就是char型变量的表示范围是 -127--127 
[解决办法]
char 是有符号类型, 取值0~127再加就高位溢出变成负数了 永远<128

热点排行