|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 这个代码为什么会出现乱码状态
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1763
人关注过本帖
标题:
这个代码为什么会出现乱码状态
只看楼主
加入收藏
石焱
等 级:
新手上路
帖 子:6
专家分:0
注 册:2016-11-1
第
11
楼
收藏
得分:0
以下是引用
炎天
在2016-11-1 18:03:53的发言:
unsigned能存储的数据范围则是0~65535
2016-11-01 18:08
举报帖子
使用道具
赠送鲜花
yanjunfeng10
等 级:
论坛游民
威 望:
1
帖 子:15
专家分:44
注 册:2016-10-27
第
12
楼
收藏
得分:4
unsigned i;
因为i是unsigned型的,所以i>=0永远成立,就继续执行i- -了,改用%u输出就不会有负数了,不过条件还是要改哦
for(i=9;i>=0;i--)
{
printf("%d\n",i);
}
2016-11-01 23:30
举报帖子
使用道具
赠送鲜花
Ted_Ming
等 级:
论坛游民
帖 子:15
专家分:35
注 册:2016-11-2
第
13
楼
收藏
得分:4
我的完全动不了。应该是等于0的时候还要 i--。变成了负数,因为是无符号整数,有变成极大的数了。然后重复死循环。把 >= 改成 > 就可以
2016-11-02 15:03
举报帖子
使用道具
赠送鲜花
书生牛犊
来 自:星夜征程
等 级:
贵宾
威 望:
10
帖 子:1101
专家分:5265
注 册:2015-10-27
第
14
楼
收藏
得分:4
unsighed 无符号类型。所以小于零的数都会被计算机解读为一个正数。
所以你的for循环i>=0的条件会恒成立
φ(゜▽゜*)♪
2016-11-02 15:24
举报帖子
使用道具
赠送鲜花
StadyC
等 级:
侠之大者
威 望:
6
帖 子:182
专家分:430
注 册:2016-10-13
第
15
楼
收藏
得分:4
因为unsigned int永远不会小于0啊,当减到0的时候,再减1,会跳到unsigned int最大那个数好像是4294967295,所以这就是一个无限循环了
[此贴子已经被作者于2016-11-2 17:14编辑过]
2016-11-02 17:08
举报帖子
使用道具
赠送鲜花
StadyC
等 级:
侠之大者
威 望:
6
帖 子:182
专家分:430
注 册:2016-10-13
第
16
楼
收藏
得分:0
回复 8楼 炎天
不是unsigned short你说的范围是unsigned short的,C语言只写unsigned的话默认是unsigned int,范围是0~4294967295
2016-11-02 17:11
举报帖子
使用道具
赠送鲜花
16
2/2页
1
2
快速回复:
这个代码为什么会出现乱码状态
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.017273 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved