| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 481 人关注过本帖
标题:EOF用char类型赋值为什么可行?
取消只看楼主 加入收藏
hanwang3
Rank: 1
等 级:新手上路
帖 子:24
专家分:7
注 册:2015-8-24
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:3 
EOF用char类型赋值为什么可行?
EOF的值为-1,应该用int类型的变量去存放,但是我用char类型的变量存放也没出问题,不知道是什么情况?
2015-09-07 14:19
hanwang3
Rank: 1
等 级:新手上路
帖 子:24
专家分:7
注 册:2015-8-24
收藏
得分:0 
回复 2楼 边小白
char表示的都是正值,没有负的。
2015-09-07 14:35
hanwang3
Rank: 1
等 级:新手上路
帖 子:24
专家分:7
注 册:2015-8-24
收藏
得分:0 
回复 4楼 边小白
确实是这样,一直都有误解了。
自己编程验证了一下,char可以表示正数和负数,范围是-128~+127,负数用补码表示。
2015-09-08 10:49
hanwang3
Rank: 1
等 级:新手上路
帖 子:24
专家分:7
注 册:2015-8-24
收藏
得分:0 
回复 8楼 TonyDeng
负数赋值给unsigned char和unsigned int 应该是以补码的形式赋值,比如把-1赋给unsigned char,实际输入的值是0xff,所以以十进制输出时显示255;
您给的例子因为判别式中多了一个“=”,所以当x = 0后,x-- 等于-1,补码形式为0xffffffff,判别式判断为正,继续执行。
但是我不能理解的是,此时以十进制输出时,显示的是-1,而不是4294967295?
2015-09-08 11:20
快速回复:EOF用char类型赋值为什么可行?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.048812 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved