定点数和浮点数
定点和浮点中的“点”指的是小数点,定点数在比特位的定义上确定了小数点的位置,而浮点数使用更复杂的表示方式,导致小数点在若干个比特位上没有直接体现,所以称它是浮点。 定点数 1. “定点"表示的整数 4-bit无符号整数可以用下面这种方式来表示: 整数不存在小数点,也可以说我们默认小数点固定在整数的末尾,所以整数的表示也可以看作是“定点”。 2. 定点表示的小数 使用7位二进制,前4位表示整数部分,后3位表示小数部分,可以这样表示: $$ \begin{array}{c:c:c:c|c:c:c} 2^3 & 2^2 & 2^1 & 2^0 & 2^{-1} & 2^{-2} & 2^{-3} \end{array} $$ 小数点固定在第4、第5个比特之间,分别计算每个位置的值并求和即可得到这段二进制表示的小数值: 可以表示的范围是 $[0.0, 15.875]$,表示的数之间的最小间隔是 $0.125$,并且间隔是均匀的。 定点数的特点: 定点数和整数的表示很接近,计算也像整数一样简单高效; 几乎可以重用为整数运算设计的硬件; 表示的数值间隔均匀,但是整体范围较小。 浮点数 为了方便理解,我们还是从最简单的无符号整数开始,逐步定义出浮点数。 4-bit可以表示出集合 $A=\{i|0\leq i \leq 15, i\in \Z\}$,如果把它们看作 $2$ 的指数,就可以表示出数值更大的集合 $B=\{2^i|i\in A\}$,但是数据变得非常稀疏,并且是距离0越远越稀疏。 前 $4$ 位二进制可以称为指数(Exponent),简写为 $E$;为了表示小数,我们再加入 $3$ 位尾数(Mantissa),简写为 $M$,尾数部分和之前的计算方式相同: $$ \begin{array}{c:c:c} 2^{-1} & 2^{-2} & 2^{-3} \end{array} $$ 例如:尾数101可以计算得到 $\bold{1}\times 0.5+\bold{0}\times 0.25+\bold{1}\times 0.125=0.625$ 将指数部分的值与尾数部分的值相乘得到十进制的结果:...