读书人

字符变量即是128

发布时间: 2013-02-24 17:58:56 作者: rapoo

字符变量等于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

读书人网 >C++

热点推荐