248右移2位为什么是—2
答案:2 悬赏:60 手机版
解决时间 2021-03-17 04:06
- 提问者网友:寂寞撕碎了回忆
- 2021-03-16 18:04
248右移2位为什么是—2
最佳答案
- 五星知识达人网友:怀裏藏嬌
- 2021-03-16 18:36
首先你的代码肯定类似:
char a=248;
a=a>>2;
printf ("%d",c);这样的代码导致的,因为某些(其实是大部分)计算机char是signed的,所以248溢出后变成了-8,二进制就是11110111,负数右移缺失位补1,右移两位变成11111101,而%d表示把他当成十进制输出,所以是-2
char a=248;
a=a>>2;
printf ("%d",c);这样的代码导致的,因为某些(其实是大部分)计算机char是signed的,所以248溢出后变成了-8,二进制就是11110111,负数右移缺失位补1,右移两位变成11111101,而%d表示把他当成十进制输出,所以是-2
全部回答
- 1楼网友:酒醒三更
- 2021-03-16 19:25
给她了,怎么大妈,她没给您添麻烦吧?”
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯