C语言中,unsigned不应该是无符号数吗?为什么还是可以显示负数?
答案:2 悬赏:0 手机版
解决时间 2021-04-07 16:57
- 提问者网友:藍了天白赴美
- 2021-04-07 05:41
C语言中,unsigned不应该是无符号数吗?为什么还是可以显示负数?
最佳答案
- 五星知识达人网友:执傲
- 2021-04-07 07:21
显示成有符号还是无符号,是根据printf的格式化参数来决定的。
%d是按照有符号输出,%u是按照无符号输出。
追问:既然这样,那unsigned这个语句还有什么作用,直接int 也可以用%u输出啊
追答:用unsigned定义变量,在C语言运算时有用。譬如位移运算,无符号数右移时,高位补充0,如果是有符号数右移,高位补充的是符号位的值(负数的符号位是1,正数的符号位是0)。
另外,如果用%u输出有符号数,编译时可能会提示告警。
%d是按照有符号输出,%u是按照无符号输出。
追问:既然这样,那unsigned这个语句还有什么作用,直接int 也可以用%u输出啊
追答:用unsigned定义变量,在C语言运算时有用。譬如位移运算,无符号数右移时,高位补充0,如果是有符号数右移,高位补充的是符号位的值(负数的符号位是1,正数的符号位是0)。
另外,如果用%u输出有符号数,编译时可能会提示告警。
全部回答
- 1楼网友:蓝房子
- 2021-04-07 08:46
printf("%d", a);//还是按有符号数显示的,应该改成:
printf("%u", a);
printf("%u", a);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
女友不同意双方父母见面什么情况 |
2017年斯诺克大奖赛冠军是谁 |
衣的组词有什么 |
√32-√48+√3分之1 |
网上姓名测试打分可信吗 |
在中国买个房子可以住多久啊? |
地铁地下怎么挖通的 |
感谢送我礼物的人句子 |
句子 孩子们就像什么 |
哺乳内衣选前开扣的好还是上开扣的 |
是什么菌菇 |
急!!!狗狗咬过的布娃娃 放置几天没动 上面 |
形容没出息的成语 |
代姓取名字大全2017最新版 |
一脚一什么成语 |
推荐资讯