为什么要用移码(而非补码)来表示浮点数的阶?

阶码可以用补码编码吗?既然移码是为了避免负阶而加的偏置常数,那为什么不直接用补码来表示阶呢?虽然有正负阶,但是我们补码一样可以方便地进行加减乘除运算,为什么用移码而不用补码呢?

阶码可以用补码来编码。
但是补码,阶码两者相较,阶码更好。

1. 便于浮点数加减运算时的对阶操作(比较大小)
比较大小时,用移码编码将其转化为正数比较,从数字电路实现的角度,可以简化比较。
比如:1.01 * 2^(-1) 与 1.11 * 2^3比较
补码编码需要比较 111(-1) 与 011(3)的大小关系
移码编码需要比较 011(3)与 111(7)的大小关系
以正数比较更快。

2. 机器0的表示
在早期没有非规格化数时,无法精确表示机器0,只能以最小的规格化数来近似表示,若总位数为8位,用补码编码时,最小规格化数为1.0 * 2^(-4),机器数为0 100 0000,并非全0,而移码编码为0 000 0000,符合我们的习惯。

你可能感兴趣的:(计算机组成原理)