请读程序片段: int x=20;printf("%d\n",~x);上面程序片段的输出结果是
答案:5 悬赏:50 手机版
解决时间 2021-04-01 09:33
- 提问者网友:美人性情
- 2021-03-31 22:10
请读程序片段: int x=20;printf("%d\n",~x);上面程序片段的输出结果是
最佳答案
- 五星知识达人网友:一把行者刀
- 2021-03-31 23:47
这个是求位非的,比较少见
int x=20
首先把x转为二进制
20/2...得10余0
10/2...得5余0
5/2... 得2余1
2/2... 得1余0
1/2... 得0余1 10100是20的二进制,相当于00010100
~1=0,~0=1 所以有11101011
再把11101011转为十进制
1*2^7+1*2^6+1*2^5+1*2^3+1*2^1+1*2^0
=128+64+32+8+2+1
=235 所以结果是235
int x=20
首先把x转为二进制
20/2...得10余0
10/2...得5余0
5/2... 得2余1
2/2... 得1余0
1/2... 得0余1 10100是20的二进制,相当于00010100
~1=0,~0=1 所以有11101011
再把11101011转为十进制
1*2^7+1*2^6+1*2^5+1*2^3+1*2^1+1*2^0
=128+64+32+8+2+1
=235 所以结果是235
全部回答
- 1楼网友:舊物识亽
- 2021-04-01 03:59
结果235是错的。
因为计算机存放的是补码,又正数得原码=反码=补码,所以
20的补码:00010100
按位取反(~x)得
因为计算机存放的是补码,又正数得原码=反码=补码,所以
20的补码:00010100
按位取反(~x)得
- 2楼网友:一把行者刀
- 2021-04-01 03:26
-21
- 3楼网友:雪起风沙痕
- 2021-04-01 02:00
-21
- 4楼网友:狂恋
- 2021-04-01 00:37
运行结果是 -21 不是235
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯