c语言程序设计谭浩强数值数据在机内的表示

c语言程序设计谭浩强数值数据在机内的表示

ID:8963394

大小:45.50 KB

页数:4页

时间:2018-04-13

c语言程序设计谭浩强数值数据在机内的表示_第1页
c语言程序设计谭浩强数值数据在机内的表示_第2页
c语言程序设计谭浩强数值数据在机内的表示_第3页
c语言程序设计谭浩强数值数据在机内的表示_第4页
资源描述:

《c语言程序设计谭浩强数值数据在机内的表示》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数值数据在机内的表示   在选择计算机的数值数的表示方式时,需要考虑以下几个因素:(1)要表示的数的类型(小数、整数、实数和复数);(2)可能遇到的数值范围;(3)数值精确度;(4)数据存储和处理所需要的硬件代价。   定点数与浮点数   计算机处理的数值数据多数带有小数,小数点在计算机中通常有两种表示方法,一种是约定所有数值数据的小数点隐含在某一个固定位置上,称为定点表示法,简称定点数;另一种是小数点位置可以浮动,称为浮点表示法,简称浮点数。1.定点数表示法(fixed-point)所谓定点格式,即约定机器中所

2、有数据的小数点位置是固定不变的。在计算机中通常采用两种简单的约定:将小数点的位置固定在数据的最高位之前,或者是固定在最低位之后。一般常称前者为定点小数,后者为定点整数。定点小数是纯小数,约定的小数点位置在符号位之后、有效数值部分最高位之前。若数据x的形式为x=x0.x1x2…xn(其中x0为符号位,x1~xn是数值的有效部分,也称为尾数,x1为最高有效位),则在计算机中的表示形式为:一般说来,如果最末位xn=1,前面各位都为0,则数的绝对值最小,即

3、x

4、min=2-n。如果各位均为1,则数的绝对值最大,即

5、x

6、m

7、ax=1-2-n。所以定点小数的表示范围是:2-n≤

8、x

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

10、x

11、≤2n-1当数据小于定点数能表示的最小值时,计算机将它们作0处理,称为下溢;大于定点数能表示的最大值时,计算机将无法表示,称为上溢,上溢和下溢统称为溢出。计算机采用定点数表示时,对于既有整数又有小数的原始数据,需要设定一个比例因

12、子,数据按其缩小成定点小数或扩大成定点整数再参加运算,运算结果,根据比例因子,还原成实际数值。若比例因子选择不当,往往会使运算结果产生溢出或降低数据的有效精度。用定点数进行运算处理的计算机被称为定点机。        2.浮点数表示法(floating-pointnumber)与科学计数法相似,任意一个J进制数N,总可以写成N=JE×M式中M称为数N的尾数(mantissa),是一个纯小数;E为数N的阶码(exponent),是一个整数,J称为比例因子JE的底数。这种表示方法相当于数的小数点位置随比例因子的不同而

13、在一定范围内可以自由浮动,所以称为浮点表示法。底数是事先约定好的(常取2),在计算机中不出现。在机器中表示一个浮点数时,一是要给出尾数,用定点小数形式表示。尾数部分给出有效数字的位数,因而决定了浮点数的表示精度。二是要给出阶码,用整数形式表示,阶码指明小数点在数据中的位置,因而决定了浮点数的表示范围。浮点数也要有符号位。因此一个机器浮点数应当由阶码和尾数及其符号位组成:其中ES表示阶码的符号,占一位,E1~En为阶码值,占n位,尾符是数N的符号,也要占一位。当底数取2时,二进制数N的小数点每右移一位,阶码减小1,

14、相应尾数右移一位;反之,小数点每左移一位,阶码加1,相应尾数左移一位。若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是唯一的。例如11.01也可以表示成0.01101×23,0.1101×22等等。为了提高数据的表示精度,当尾数的值不为0时,其绝对值应大于等于0.5,即尾数域的最高有效位应为1,否则要以修改阶码同时左右移小数点的方法,使其变成这一要求的表示形式,这称为浮点数的规格化表示。当一个浮点数的尾数为0时,不论其阶码为何值,或者当阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮

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

16、据的表示范围,但浮点机在运算过程中,仍会出现溢出现象。下面以阶码占3位,尾数占5位(各包括1位符号位)为例,来讨论这个问题。图2-1给出了相应的规格化浮点数的数值表示范围。图2-1规格化浮点数分布示意图图2-1中,“可表示的负数区域”和“可表示的正数区域”及“0”,是机器可表示的数据区域;上溢区是数据绝对值太大,机器无法表示的区域;下溢区是数据绝对值太小,机器无法表示的区

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。