深入理解计算机原理——程序与执行(二)

浮点数

(1)       浮点数的表示方法;

(2)       浮点数的精度与范围;

(3)       浮点数的分布;

(4)       浮点数阶码的表示方法;

(5)       浮点数位数规格化;

(6)       结合例子学习浮点数的表示方法;

(7)       IEEE 754标准;

 

2.1.1.1 定点数与浮点数

   计算机处理的数值数据多数带有小数,小数点在计算机中通常有两种表示方法,一种是约定所有数值数据的小数点隐含在某一个固定位置上,称为定点表示法,简称定点数;另一种是小数点位置可以浮动,称为浮点表示法,简称浮点数

 

定点小数是纯小数,约定的小数点位置在符号位之后、有效数值部分最高位之前。若数据 x 的形式为 x = x0.x1x2…xn ( 其中x0为符号位,x1~xn是数值的有效部分,也称为尾数, x1为最高有效位 ),则在计算机中的表示形式为:

 

      

          2- n  ≤ | x | ≤ 1 -  2- n

 

定点整数是纯整数,约定的小数点位置在有效数值部分最低位之后。若数据 x 的形式为 x = x0 x1x2…xn ( 其中x0为符号位,x1~xn 是尾数, xn 为最低有效位 ),则在计算机中的表示形式为:

    

定点整数的表示范围是:

1≤ | x | ≤ 2n  -  1

 

用科学记数法表示,应该是这样的:

 

(+ or - ) 1.(mantissa) * 2 ^ exponent

 

注意:小数点前面是有个1的。

 

IEEE 754规定了四种表示浮点数值的方式:单精确度(32位)、双精确度(64位)、延伸单精确度(43比特以上,很少使用)与延伸双精确度(79比特以上,通常以80位实现)。只有32位模式有强制要求,其他都是选择性的。大部分编程语言都有提供IEEE浮点数格式与算术,但有些将其列为非必需的。例如,IEEE 754问世之前就有的C语言,有包括IEEE算术,但不算作强制要求(C语言的float通常是指IEEE单精确度,而double是指双精确度)。 

posted @ 2018-10-28 19:48  FannieGirl  阅读(710)  评论(0编辑  收藏  举报