中易网

C语言中 unsigned int a=-1 printf(“-1=%d\n”,a); 为什么输出值

答案:4  悬赏:70  
解决时间 2021-01-21 11:40
C语言中 unsigned int a=-1 printf(“-1=%d\n”,a); 为什么输出值
最佳答案
输出值为-1。
  原因:
  1、在C语言中整型常量的数据类型默认为int,所以unsigned int a = -1中,-1的类型是int类型。实际上是有一个隐式转换,即将int类型转成unsigned int类型。 这个转换的意义不大,因为没有超出unsigned类型的表示范围,所以a的机器码依然是-1的机器码。
  2、printf输出函数的控制字符是%d,即输出有符号数,所以结果是-1,如果要输出无符号数,请使用:
printf("%u
", a);
全部回答
你应该输出了"-1=-1"吧; %d换成%u试试。
unsigned int a=-1

说到底,a=0xffffffff【4294967295】
而0xffffffff当做有符号数,就是-1.

你可以通过
printf(“-1=%d\n”,a);【%d有符号数显示】

printf(“-1=%u\n”,a);【%u无符号数显示】
来对比
【("等需要改成英文字符】
因为%d输出的是有符号数,printf根据%d把a当作有符号数来读了
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
青岛ktv怎么设计效果比较好?
大魏村村地址好找么,我有些事要过去
骨骺线未闭合,服用比智高真的可以帮助长高吗
《爸爸英语小明和学弟弟数》怎么排成几句不同
大庆公积金贷款买房流程哪位知道?要怎么办理
求助办签证用的住所证明
哪位能告知一下上海买美式家具可以去哪里?有
WOW维库人考古掉哪些精良?
头发干枯,毛躁,还掉发怎么办?
我想问问大门正对卧室门怎么办?还有什么风水
电脑医院(006乡道海尔专卖店旁)地址有知道的
室内甲醛检测方法标准是怎样的?
请问燃气热水器泄压安全阀漏水该咋办?
轻钢龙骨隔墙面积计算规则(是否扣除吊顶以上
怎么做外贸生意?
推荐资讯
贝斯特太阳能公司怎么样?具体地址多少?
怀孕十八周晚上因为吵架哭的很伤心,这样会引
bigbang对yg的贡献 可以从收入 音乐界的地位
已知b-a=-6,ab=7,那么a2b-ab2的值为______
农村旱改厕怎么改?且没有下水道
雪纳瑞狗狗的性格。
大庆市龙凤区幼儿园
备孕期间能服用 大豆异黄酮吗
家居风水怎样看房屋朝向是以大门为标准吗
中通快递(刘府公司)地址在哪,我要去那里办事
某单位共有十多名职员,男职员的人数比女职员
我滴天啊,恒大居然1:4输给上港,什么情况
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?