
看了前两个回答,都是在答非所问,没有回答到要点。简单说下我的个人理解。补码1.0000与1,0000没有与之对应的原码,也就是说这两个补码所表示的真值不在原码的表示范围内。而补码中0的补码表示是唯一的。这里1.0000是纯小数的补码表示,纯小数的补码的范围是-1≤x≤1-2的-n次方(这里n是除了符号位以外的位数),注意这里纯小数补码的范围比纯小数原码表示的范围多表示了一个数-1(原码的范围读者自己查找),就是说在纯小数的情况下,原码是表示不出-1的,而补码1.0000的真值就是-1,即补码1.0000没有相对应的原码。1,0000是纯整数补码,同理,整数补码比原码多表示一个-2的n次方(n同上),-2的n次方的补码表示就是1,0000,而-2的n次方在相同n的情况下原码是表示不出来的,所以1,0000没有相对应的原码。为什么补码表示会比原码表示多表示一个数,因为在原码表示中,0的表示不唯一,有+0和-0两种表示,而在补码和移码中0的表示都是唯一的,不管是+0还是-0都是一种表示形式,这就导致补码可以比原码多表示一个数。
