2.1.1 数值数据在机内的表示 

在选择计算机的数值数的表示方式时,需要考虑以下几个因素:(1)要表示的数的类型(小数、整数、实数和复数);(2)可能遇到的数值范围;(3)数值精确度;(4)数据存储和处理所需要的硬件代价。

2.1.1.1 定点数与浮点数

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

1. 定点数表示法(fixed-point)

所谓定点格式,即约定机器中所有数据的小数点位置是固定不变的。在计算机中通常采用两种简单的约定:将小数点的位置固定在数据的最高位之前,或者是固定在最低位之后。一般常称前者为定点小数,后者为定点整数。

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

一般说来,如果最末位 xn = 1,前面各位都为 0 ,则数的绝对值最小,即 |x|min = 2-n 。如果各位均为 1,则数的绝对值最大,即 |x|max =1-2-n 。所以定点小数的表示范围是:

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

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

定点整数的表示范围是:

1≤ | x | ≤ 2n  -  1

当数据小于定点数能表示的最小值时,计算机将它们作0处理,称为下溢;大于定点数能表示的最大值时,计算机将无法表示,称为上溢,上溢和下溢统称为溢出

计算机采用定点数表示时,对于既有整数又有小数的原始数据,需要设定一个比例因子,数据按其缩小成定点小数或扩大成定点整数再参加运算,运算结果,根据比例因子,还原成实际数值。若比例因子选择不当,往往会使运算结果产生溢出或降低数据的有效精度。

用定点数进行运算处理的计算机被称为定点机

2. 浮点数表示法(floating-point number)

与科学计数法相似,任意一个J进制数N,总可以写成

N = J E × M

式中M称为数 N 的尾数(mantissa),是一个纯小数;E 为数 N 的阶码(exponent),是一个整数,J称为比例因子 J E底数。这种表示方法相当于数的小数点位置随比例因子的不同而在一定范围内可以自由浮动,所以称为浮点表示法。

底数是事先约定好的(常取2),在计算机中不出现。在机器中表示一个浮点数时,一是要给出尾数,用定点小数形式表示。尾数部分给出有效数字的位数,因而决定了浮点数的表示精度。二是要给出阶码,用整数形式表示,阶码指明小数点在数据中的位置,因而决定了浮点数的表示范围。浮点数也要有符号位。因此一个机器浮点数应当由阶码和尾数及其符号位组成:

其中 ES 表示阶码的符号,占一位,E1~En 为阶码值,占 n 位,尾符是数 N 的符号,也要占一位。当底数取 2 时,二进制数 N 的小数点每右移一位,阶码减小 1,相应尾数右移一位;反之,小数点每左移一位,阶码加 1,相应尾数左移一位。

若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是唯一的。例如 11.01 也可以表示成 0.011012-3 ,0.1101×2-2 等等。为了提高数据的表示精度,当尾数的值不为 0 时,其绝对值应大于等于 0.5,即尾数域的最高有效位应为 1,否则要以修改阶码同时左右移小数点的方法,使其变成这一要求的表示形式,这称为浮点数的规格化表示。

当一个浮点数的尾数为 0 时,不论其阶码为何值,或者当阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数看成 0 值,称为机器零

浮点数所表示的范围比定点数大。假设机器中的数由 8 位二进制数表示(包括符号位):在定点机中这 8 位全部用来表示有效数字(包括符号);在浮点机中若阶符、阶码占 3 位,尾符、尾数占 5 位,在此情况下,若只考虑正数值,定点机小数表示的数的范围是 0.0000000 到 0.1111111,相当于十进制数的 0 到 127/128,而浮点机所能表示的数的范围则是 2 - 11×0.0001 到 211×0.1111,相当于十进制数的 1/128 到 7.5 。显然,都用 8 位,浮点机能表示的数的范围比定点机大得多。

尽管浮点表示能扩大数据的表示范围,但浮点机在运算过程中,仍会出现溢出现象。下面以阶码占 3 位,尾数占 5 位(各包括 1 位符号位)为例,来讨论这个问题。图 2-1 给出了相应的规格化浮点数的数值表示范围。

图2-1  规格化浮点数分布示意图

图 2-1 中,“可表示的负数区域”和“可表示的正数区域”及“0”,是机器可表示的数据区域;上溢区是数据绝对值太大,机器无法表示的区域;下溢区是数据绝对值太小,机器无法表示的区域。若运算结果落在上溢区,就产生了溢出错误,使得结果不能被正确表示,要停止机器运行,进行溢出处理。若运算结果落在下溢区,也不能正确表示之,机器当 0 处理,称为机器零。

一般来说,增加尾数的位数,将增加可表示区域数据点的密度,从而提高了数据的精度;增加阶码的位数,能增大可表示的数据区域。

 

转载:http://www.zzslxx.com/wmy/jy/Chap02/2.1.1.1.htm相关推荐

  1. Java浮点数内存存储

    转自: [解惑]剖析float型的内存存储和精度丢失问题 1.小数的二进制表示问题 首先我们要搞清楚下面两个问题: (1)  十进制整数如何转化为二进制数 算法很简单.举个例子,11表示成二进制数: ...

  2. 变电站越级跳闸的几大原因(转载)

    变电站越级跳闸现象与主要原因 时间:2015-08-18 10:18:42编辑:电工栏目:配电知识 导读:变电站越级跳闸的原因,越级跳闸的原因包括保护出口开关拒跳.保护拒动.保护定值不匹配.开关控制熔 ...

  3. MySQL5.7新特性——在线收缩undo表空间 (转载)

    在查找到很多资料中,以下文章是 对于参数 innodb_undo_log_truncate 说明最为简明的一篇文章了,这里做一转载. (原文: https://www.linuxidc.com/Lin ...

  4. 最短路径问题的算法实现【转载】

    最短路径问题的算法实现[转载] 文章来源:http://www.gissea.cn/html/2006-06/487.htm 本例以由拓扑关系的arc/info 文件为数据源.其中a1,b1,c1是以 ...

  5. 电动葫芦使用注意事项(转载)

    电动葫芦怎么用?电动葫芦使用注意事项 时间:2015-08-23 12:18:40编辑:电工栏目:维修电工 导读:电动葫芦的使用注意事项,电动葫芦的使用要求,不允许不锈钢钢丝绳直接在高速.重载使用,不 ...

  6. 电灯节电小知识的方法大全(转载)

    电灯节电小知识 时间:2015-05-10 09:44:11编辑:电工栏目:用电常识 导读:有关电灯节电的小知识,包括要采用白炽灯,加装调光节电装置,楼道照明尽量采用节电装置,及时关掉不要的电灯,并选 ...

  7. 。颜色 网页色彩转载 白底

    Time: 2006-11-15 <蓝灰>━┅━━━┅━━━┅━━━┅━━━┅━━━┅━━━┅━━━┅━━━┅━ #130A7E     我回过头去看自己成长的道路,一天一天地观望:    ...

  8. Programming MS Office 2000 Web Components第二章第一节(第二部分)

    排序和过滤 阅读本节时,如果您打开随书光盘Samples\Chap02目录下的SortFilterExample.htm文件.您会发现这个例子很有用.本节展示的代码和描述的特定环境来自这个文件. 电子 ...

  9. JavaScript中的正则表达式解析

    正则表达式(regular expression)对象包含一个正则表达式模式(pattern).它具有用正则表达式模式去匹配或代替一个字符串(string)中特定字符(或字符集合)的属性(proper ...

最新文章

  1. 惊了!计算机视觉还可以这么玩?
  2. 大数据学习,涉及的知识点
  3. 接触HTML和CSS心得体会
  4. C++编程思想重点笔记(下)
  5. Vue——整合Katex
  6. 你说精通 Redis ,你看过持久化的配置吗?
  7. 深度学习《各种归一化的区别》
  8. hibernateTemplate 的find 查找方法
  9. 万网域名注册查询接口(API)的说明
  10. 【2019.08.23】2019CCPC网络赛
  11. 关于权限的数据库设计
  12. 用到的python组件
  13. java显示一个钟表_java实现时钟效果
  14. 批量导出导入docker镜像
  15. CS224N NLP
  16. js 深浅拷贝的整理
  17. 【博主推荐】C#生成好看的二维码(附源码)
  18. 分组折线图、柱状图实现(多条折线图、柱状图同时显示)实现方式
  19. daily reading
  20. Scala 将时间字符串转为时间戳

热门文章

  1. 【ES】1318- 这些 ES7-ES12 的知识点你都掌握了吗?
  2. 离开Web3的年轻人:欲望、虚幻、沉浮、真实
  3. python回归分析结果怎么看_Python数据分析|线性回归
  4. window.onload的作用
  5. 和平精英有了氪金系统,玩家再也不敢开挂了?网友:你到亚服看看
  6. MCU内部参考电压几种妙用你都知道嘛
  7. 使用 LaTeX 的笔记
  8. 2018广告屏蔽软件
  9. 由 UWP 版网易云音乐闪退引发的博文
  10. 金山打字专业文章计算机,计算机打字训练管理(范文).doc