请问已知补码求真值的公式中这个
公式是如何推导的。
补码和原码是互补的关系,最高一位是符号位,如果是1代表真值是负数,如果是0代表真值是正数
例如 11010110 的源码为 10101010 不要符号位源码和补码相加为 1010110 + 0101010 = 10000000 = 2的7次方
所以知道这个规律求补码真值就不需要记公式了
十进制 -9 把符号位用1表示是19 19的补码是11
补码11的真值是 -10的1次方+1 = -10+1 = -9
-10的一次方是先求方再拼符号 -(10)1
正数的补码就是它本身。负数的补码是取反+1
这个规则很容易理解,我们用10进制表示,如果用两位数表示一个10进制,那么
00=0 01=1 02=2 ... 09=0
-1怎么表示?取相反的十进制数(9-n)+1
1相反的数是8
2相反的数是7
3的相反数是6
...
9相反的树是1
那么-1就是01的相反数98,再+1=99
这么表示有什么好处?
假设我们在00前面添加一个虚拟的1
那么
-1=100-1=99
-2=100-2=98
...
或者这么写
97 98 99 00 01 02 03 ...
是不是写成了一个自然的循环,只是最高的进位丢掉。
对应就是
-3 -2 -1 0 1 2 3 ...
如果你10进制看懂了,那么2进制就好理解了。