数的定点表示:
小数点按照约定的形式给出。在计算机里面没有专门的硬件用来表示小数点, 所谓的小数点都是计算机体系设计人员按照约点的形式给出的。按照约定的方式, 可以将计算机分为两种:一种是小数点在数符后面数值前面, 一种是数值后面。如图:
前面这种称为小数定点机, 后面的称为整数定点机。
下面是这两种形式计算机的表示范围:
浮点表示:
为什么要引入浮点表示?
1, 最早的计算机只有两种表示方式:小数定点机和整数定点机。如果计算很大的数值时需要程序员手动调节小数点的位置
编程困难。
2,数的表示范围很小, 为了表示相差很大的数据, 往往需要很大的机器字长。
3, 数据利用率不高, 用很大的机器字长时, 有很多位都是 0 。
浮点表示形式:
r 可以为2, 4,8,16 等, 下面是一个例子。
注意 阶码 是二进制的。 计算机中可以使用的只有两种(前面打钩), 其中第二种称为规格化数:即小数第一位为 1(r = 2) .
浮点数在计算机里面的表示形式:
浮点数的规格化问题:
浮点数为什么要规格化?
尾数的机器字长是有限的, 如果小数点后面有效数字很少的话, 那么数的精度就会降低; 所以为了保证精度,需要规格化。
什么是规格化?
浮点数的规格化形式与基值 r 是有关系的, 因为尾数是二进制, 如果 r = 2, 那么小数点后面第一数为 1, 称为规格化数。
如果r = 4, 那么小数点后面两位不全为 0 , 那么称为规格化数, 同理, 如果r = 8, 就是小数点后面 3 位不全为 0.
如何进行规格化?
左移右移的问题, 左移称为左规, 右移称为右规。
基数 r 越大, 可表示的浮点数的范围越大, 浮点数的精度就降低。