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

为何变0,什么原理

2013-04-20 
为什么变0,什么原理?unsigned char ifor(i0i255i++)printf(%d,i)死循环。255+1越界之后 i变成0.继

为什么变0,什么原理?
unsigned char i;
for(i=0;i<=255;i++)
printf("%d",i);
死循环。255+1越界之后 i变成0.继续! 

为什么变0,什么原理? 就像闹钟一样 转一圈又回来了。。unsigned char范围是0~255
[解决办法]
没明白什么意思。这段代码255没有死循环啊。只有当你255+1后,其实是11111111 + 00000001 = 00000000,所以变成了0,然后无限循环了。如果你不理解,应该去看看原码补码的相关知识了。
[解决办法]
unsigned char 的 有效范围就是 0 ~ 255.
当这个数值大于255的时候,它的值一般是256的模。
比如说 用unsigned char i = 1000;
那么  i = 1000 % 256;

热点排行