补充:定点数和浮点数表示方法_第1页
补充:定点数和浮点数表示方法_第2页
补充:定点数和浮点数表示方法_第3页
补充:定点数和浮点数表示方法_第4页
补充:定点数和浮点数表示方法_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第x节补充:定点数和浮点数表示方法2014.2.20,2,补充:定点数和浮点数表示,1定点数由于定点位置不同,一般又分为两种情况。对于整数,小数点约定在最低位的右边,称为定点整数。对于纯小数,小数点约定在符号位之后,称为定点小数。(1)定点整数定点整数约定小数点在数值位的最低位之后,此时计算机中所表示的数一律为整数。定点整数又被划分为带符号和不带符号的两类。带符号整数:某个n位二进制数,其最高位为符号位,其他N-1位为数值部分,如图所示。,n位带符号二进制可表示的数值范围为N2n-1-1。例:16位定点数可表示数值范围为-3276832767(补码)32位定点数可表示数值范围为-231231-1(补码),3,无符号整数:所有的数位都用来表示数值,如图所示。,Nn-1Nn-2Nn-3N2N1N0,数值部分(n位)小数点位置,二进数可表示的数值范围为0N2n-1。例:16位无符号定点数可表示数值范围为065535。(2)定点小数定点小数用最高位表示符号,其他n-1位二进制数表示数值部分,将小数点定在数值部分的最高位左边,因此如何一个小数可以表示为:,NfNn-2Nn-3N2N1N0,小数点位置数值部分(n-1位),则n位二进数可表示的数值范围为N1-2-(n-1)。,定点表示法主要用于早期的计算机中,可以节省硬件,简化运算器的设计。但在编程时必须选择合适的比例因子,来表示超出定点数表示范围的数据。与浮点数相比其表示的范围和精度都有限。,注意:小数点“.”在计算机中实际上是不表示出来的,需要在编程时时事先约定它的位置。定点小数的表示范围与位数无关,定点小数的长度只与其精度有关,这与十进制的小数不同。在定点运算时需要有适度的位长,否则会有溢出的问题。,4,【例】定点小数二进制整数+0.1001111和-0.1001111表示形式为:0.10101111.1010111,符号,符号,小数点,小数点,数值,数值,5,二进制阶码,尾数,2浮点数如果要处理的数既有整数部分,又有小数部分,则采用定点数会比较麻烦。为此可以采用浮点数,即小数点的位置不是固定的。通常可表示为:N=SRE,式中:S数值N的尾数,表示数值N的有效数值,决定数值的精度。Sf数符,0表示正数,1表示负数。E数值N的阶码,表示小数点的位置。Ef表示阶码的符号位,0表示阶码为正数,1表示阶码为负数。,阶码的底R,一般选择与尾数的基数相同。对于同一种系统,R是隐含的约定常数,并不直接表示在浮点数表示中。为了便于理解且与二进制表示一致,约定R=2,并规定浮点数的尾数部分用定点小数表示,阶码是定点整数,尾数是定点小数,它相当于将数值规范为定点小数S乘以比例因子RE。,例:设尾数为4位,阶码为2位。则,=+10112+11=01101011,6,(1)规格化浮点数对于二进制的浮点数SRE,若尾数满足0.5S1时,即为规格化数。所谓规格化数即尾数的最高位是有效数字是1而不是0。规格化的意义在尾数的有效位被充分利用,使其表示的数值精度尽可能高。一个数的浮点数的非规格化表示可以有多种,但其规格化表示是唯一的。对于不满足规格化表示的浮点数,要通过左移尾数并修改阶码的方法将其化为规格化表示格式。,【例】对于二进制数0.0001111规格化表示:0.11112-3其规格化操作为:尾数左移3次,价码减3。其代码为:11101111,阶码=3,阶符为负,尾数,数符为正,(2)数值精度与范围在计算机中,阶码是一个定点数,用于指出小数点在数据中的位置,它的位数m决定了浮点数的表示范围。尾数一般为定点小数,它的长度n决定了浮点数的精度即有效数字的位数。为既保证足够大的数值范围,又要保证所要求的精度,合理选择m和n的值是十分必要的。,(3)计算机中机器零a.如果一个浮点数的尾数全为0,则不论其阶码为何值,计算机在处理时都把这种浮点数当作零看待;b.如果一个浮点数的阶码小于它所表示范围的最小值,则不论其尾数为何值,计算机在处理时都把这种浮点数当作零看待。由于计算机保存数字的位有限,所能表示最小的数也有范围,当一个表示方式比它所能表示的数更小时,计算机无法表示,就作为0处理,实际上,这个数也很接近0了,主要还是从数学上理解。,7,4.浮点数的运算设有两个浮点数:N1=S12E1;N2=S22E2。若E1=E2,则:N1+N2=S12E1+S22E2=2E1(S1+S2)阶码相同的两个浮点数求和,只要将尾数相加作为和数的尾数,阶码仍为和数的阶码。若E1E2,则需先“对阶”,即将相加两数的阶码化为相同的数值,然后才能进行尾数相加。【例】N1=2110.1001;N2=2010.1100【解】“对阶”的方法是使小阶向大阶对齐,即将N2尾数右移两位,阶码加2,得到(N2)=2110.0011后两数相加。+N1=2110.10012110.1100当两数相减时,同样需要对阶。,两个浮点数乘法运算:N1N2=(S12E1)(S22E2)=(S1S2)(2E12E2)=(S1S2)2(E1+E2),两个浮点数除法运算:N1/N2=(S12E1)(S22E2)=(S1/S2)(2E1/2E2)=(S1/S2)2(E1-E2),两个浮点数相乘时,只要阶码相加,尾数相乘。两个浮点数相除时,只要阶码相减,尾数相除。即尾数左移阶码减;尾数右移阶码加。【例】0.0001111=0.11112-3;0.1001=0.000100123,二进制阶码,二进制阶码,8,5.应用实例【例】5.67.8=43.685.6=101.10011=230.10110011b=B3H7.8=111.11001=230.11111001b=F9H根据运算规则得:5.67.8=260.1010111000011011b=101011.1000011011b(尾数左移6位,阶码减6。)=43.52734若尾数只取四位则:5.6=101.10011=230.1011b7.8=111.11001=230.1111b5.67.8=260.10100101b=101001.01=41.25从上述算式可得知,尾数越大越精确,尾数越小

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论