永发信息网

#include <stdio.h> void main() { char c=256; int a=c; printf("%d\n",a); }

答案:3  悬赏:40  手机版
解决时间 2021-04-15 07:48
#include <stdio.h> void main() { char c=256; int a=c; printf("%d\n",a); }
最佳答案
char只有1个字节(BYTE),也就是8个位(bit)
您的char c=256;256用二进制表示的话是100000000,也就是低8位全部为0。而char类型的c只能保存8bit的数据(也就是低8位)所以实际上c=0。

同理,255的二进制表达方式为11111111,因为char类型是有符号的类型(其对应的无符号类型为unsigned char),所以其最高位为符号位,符号位为0时时正数,为1是负数。而取值方法使用“补码"。

至于补码的详细信息,请参考
相信看完之后您就理解了。
全部回答
数学题算一算就知道,我只给方法
把整型值赋给字符型,字符型拿到的是整型的低8位(二进制)。
%d表示输出为十进制有符号整数,如何换算参考补码表示
char c的取值范围是-127到127。所以当c=256时,溢出了。256的16进制为100,高位1溢出,所以,输出为0
当c为255时,16进制是ff,根据补码,就是-1。所以输出为-1
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
政治老师让我讲课,我想找一些资料。去哪找呀
如何给USB移动硬盘做系统
对下列语句在表情达意方面的作用分析不恰当的
班级相亲相爱的句子,写一首相亲相爱的诗词
毛老屲沟在哪里啊,我有事要去这个地方
科学家和建筑师从鸡蛋的那一方面得到了启示?
产后快五十月经才干净,隔了一个星期又来了,
n78用万能充不好,直充边充边玩又不好。我换
怎样下载dsnd dll?
计算:(0.125)6×(-8)7=A.8B.-1C.-8D.-0.
如果有人说你说话像小孩子、那是不是说你很幼
西游记第十四回读后感
有花有鱼唯美句子,带有鱼,眼,人,花的诗词句子
十渡拒马河乐园有哪娱乐项目
'你妈'的英语是什么?
推荐资讯
八一战友聚会标语内容写什么好
做梦梦见小说里的女人物被人**了!这个是什么
梦见一条路有多扇门
为什么公司不用基本存款账户代发工资,而要选
电脑开机太慢了,怎么升级电脑啊
我想知道,申请QQ时,申到9位数的 或者8字开
脸上过敏了,老是痒,留了一大块暗斑,没脸见
淄博汽车站离火车站远吗
给个CF体验服的下载地址 谢谢
偶现在脱发狠严重呀,怎么办噢?
摩托车气喇叭用2.5的铝的硬线接行吗
大家帮帮我阿 ,电脑有两个系统都在C盘,怎么删
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?