问题的抛出
学习了补码和原码后,都知道负数的补码是可以用原码的数值位取反+1得到;所以负数的补码转化原码逆向为数值位-1取反,但是为什么数值位取反+1后也可以得到原码?
问题的解决
了解计算机是如何产生补码的
(此处只介绍部分,详情看详解计算机运算 之 补码_ViatorSun的博客-CSDN博客_计算机补码运算)
整数补码的定义:
其中x为真值,n为整数的位数
用表示
的数值位 :
用 数值位-1取反 转化:
用 数值位取反+1 转化:
很显然
举个栗子
补码 (","前的是符号位,","后的是数值位) ------->
用 数值位-1取反 转化:
用 数值位取反+1 转化:
也得到了
总结
以上便是我对这一问题的理解,问题关键在于先进行的是那一步操作。对于实际如何补码转化原码,只要转化对了就行。