小数的原码关于补码1.0000的真值为什么是-1的解答
最近在进⾏计算机组成原理的学习,学习过程当中⼤⼤⼩⼩的问题不断,今天遇上的这个问题是我在⽹上寻好久也不曾到答案的问题,因此在此写下,⽅便后来者学习,下⾯进⼊正题:
例如:给出的机器是五位的机器,符号位⼀位,数据位四位,已知补码为1.0000,求其真值?
已知当0>x>=-1时,补码的定义为[x]补=2+x也就是说真值x=[x]补-2,所以当补码等于1.0000时,x=1.0000-2=-1,因此,证明得到补码1.0000的真值为-1。
最后解释⼀下为什么这⾥不能⽤按位取反,末尾加⼀的原则进⾏求解,因为这个原则的本质是将补码变成原码来进⾏真值的求解,然⽽,原码⼩数的定义域不包括-1,因此不能使⽤该原则进⾏推倒。
ps.在此,有⼀个极为引⼈误会的点就是符号位是0表⽰正,符号位为1表⽰负,但-1的补码也就是1.0000是⼀个极为特殊的例⼦。
⽽通过上⽂的推倒加记忆,就可以帮助我们更清楚理清在此到底发⽣了什么。