C语言问题,为什么3 ~位取反运算 后值是-4? 再讲下负数的机器码吧
答案:2 悬赏:60 手机版
解决时间 2021-12-29 01:27
- 提问者网友:了了无期
- 2021-12-28 08:07
C语言问题,为什么3~位取反运算后值是-4?再讲下负数的机器码吧
最佳答案
- 五星知识达人网友:神的生死簿
- 2022-01-10 04:27
机器存储的是补码方式存取,3的话,按照8位来算就是0000 0011,取反后是1111 1100
而第一位为1表示负数,负数补码表示法为原位取反,末位加1(符号位不变),1111 1100这是补码,按照负数表示法逆向表示为:
先减一,为1111 1011,再取反为1000 0100(首位1为负数的符号位),转换为十进制后为-4
而第一位为1表示负数,负数补码表示法为原位取反,末位加1(符号位不变),1111 1100这是补码,按照负数表示法逆向表示为:
先减一,为1111 1011,再取反为1000 0100(首位1为负数的符号位),转换为十进制后为-4
全部回答
- 1楼网友:老鼠爱大米
- 2022-01-10 05:43
3在内存中是
0000 0011
取反得到
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯