关于按位取反计算

1的按位取反我是这样算出来的:
1.获取1的二进制,使用四位二进制,为0001
2.对0001进行按位取反得到1110
3.因为计算机使用补码,所以我们要想办法计算1110这个值的补码
4.最高位符号位为1,表示负数,则反码为1001
5.最高位符号位为1,补码为反码+1,则补码为1010
6.得到按位取反后的值,1010 即为-2
但是-1的按位取反应该怎么算呢?如果将-1取绝对值再按上面这么计算的话,应该也是-2才对啊,但是-1的按位取反应该是0 。
谁能像我这样详细的列一下-1的按位取反步骤呢?并说明每一步的原因,非常感谢。

-1的四位补码

    因为-1是负数,最高位为1。

    绝对值1的原码为 001

    反码为110

    补码=反码+1,即111

    与符号并接在一起,得到-1的补码为 1 111

追问

也就是说,取绝对值的时候不对符号位做第三步的反码操作?正数和负数按位取反有什么根本上的区别吗?

追答

取反时不考虑符号位。符号位“正数为0,负数为为1”是“固定的”。
按补码规则:正数的补码就是真值的原码。也就是说,只有负数才有“原码-->反码-->补码=反码+1”过程。

温馨提示:答案为网友推荐,仅供参考
相似回答