补码为 1.0000 和 1,0000 的原码和真值分别是什么?
原码都不存在。
真值分别是-1.0 和-16。
因为原码不存在,所以凡是用“取反加一”来求解的,都是错误的。
必须使用“补码的定义式”求解。
补码的定义式,如下。
----------------------
定点小数的补码(mod=2):
[ X ]补 = X, ( 0 ≤ X < 1 )
[ X ]补 = 2 + X, (-1 ≤ X < 0 )
因此,-1.0 的补码= 2 + (-1.0) = 1.0000B。
----------------------
定点整数的补码(mod=2^n):
[ X ]补 = X ( 0 ≤ X < 2^(n-1) )
[ X ]补 = 2^n - | X | (-2^(n-1) ≤ X < 0 )
当 n = 5,-16 的补码 = 2^5-16 = 1,0000B。