搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ EOF用char类型赋值为什么可行?
标题:
EOF用char类型赋值为什么可行?
取消只看楼主
hanwang3
等 级:
新手上路
帖 子:24
专家分:7
注 册:2015-8-24
结帖率:
60%
楼主
已结贴
√
问题点数:20 回复次数:3
EOF用char类型赋值为什么可行?
EOF的值为-1,应该用int类型的变量去存放,但是我用char类型的变量存放也没出问题,不知道是什么情况?
2015-09-07 14:19
hanwang3
等 级:
新手上路
帖 子:24
专家分:7
注 册:2015-8-24
第
2
楼
得分:0
回复 2楼 边小白
char表示的都是正值,没有负的。
2015-09-07 14:35
hanwang3
等 级:
新手上路
帖 子:24
专家分:7
注 册:2015-8-24
第
3
楼
得分:0
回复 4楼 边小白
确实是这样,一直都有误解了。
自己编程验证了一下,char可以表示正数和负数,范围是-128~+127,负数用补码表示。
2015-09-08 10:49
hanwang3
等 级:
新手上路
帖 子:24
专家分:7
注 册:2015-8-24
第
4
楼
得分:0
回复 8楼 TonyDeng
负数赋值给unsigned char和unsigned int 应该是以补码的形式赋值,比如把-1赋给unsigned char,实际输入的值是0xff,所以以十进制输出时显示255;
您给的例子因为判别式中多了一个“=”,所以当x = 0后,x-- 等于-1,补码形式为0xffffffff,判别式判断为正,继续执行。
但是我不能理解的是,此时以十进制输出时,显示的是-1,而不是4294967295?
2015-09-08 11:20
4
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-457061-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.775615 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved