分享

阶码、定点整数

 e3399 2010-10-22

定点整数

  [1]计算机中,根据小数点固定的位置不同,定点数有定点(纯)整数和定点(纯)小数两种。若阶码J=0,尾数S为纯整数,此时,小数点固定在数的最低位之后,则称其为定点整数。
  定点整数的小数点完全靠事先约定而隐含在不同位置。
  如下图所示:
  
  

 

阶码

百科名片

在机器中表示一个浮点数时需要给出指数,这个指数用整数形式表示,这个整数叫做阶码,阶码指明了小数点在数据中的位置。

目录

简介
定点数表示法
BCD码
  1. 总述
  2. 编码方法
移码
展开

简介

  阶码:对于任意一个二进制数n,可用N=S×2P表示,其中S为尾数,P为阶码,2为阶码的底,P、S都用二进制数表示,S表示N的全部有效数字,P指明小数点的位置。当阶码为固定值时,数的这种表示法称为定点表示,这样的数称为“定点数”;当阶码为可变时,数的这种表示法称为浮点表示,这样的数称为“浮点数”,这在前面已有介绍。

定点数表示法

  通常定点数有两种表示法,均设P=0,小数点是隐含的,若数值部分为n位:
  当S为纯整数时,此时定点数只能表示整数,所能表示的N范围是(2n-1)≥N≥-(2n-1);当S为纯小数时,此时定点数只能表示小数,所能表示的N范围是(1-2-n)≥N≥-(1-2-n)。
  实际数值不一定都是纯整数或纯小数,运算前可选择比例因子,使所有原始数据化成纯小数或纯整数,运算后再用比例因子恢复成实际值。

BCD码

总述

  通常,我们习惯用十进制数表示数据,但计算机是用二进制数来表示数据的,这就需要进行数值进制之间的转换。我们把每位十进制数转换二进制数的编码,简称为BCD码(BinaryCodedDecimal)。BCD编码具有二进制数的形式以满足数字系统的要求,又具有十进制数的特点。在某些情况下,计算机也可以对这种形式的数直接进行运算。
  它是一种数字压缩存储编码,一个字节有8位,而数字0到9最多只需要使用4位,如果用一个字节来存储一个数字相对就会有一定的浪费,尤其是在传输过程中,由此人们就想出了压缩的办法,就是BCD编码。
  BCD编码将一个字节的8位拆分成高4位和低4位两个部分,也就是说一个字节能存储两个数字。所以BCD的编码过程就是将数字压缩的过程,将两个字节的数字压缩成一个字节。反之,解码就是把一个字节的数字拆分为两个数字单独存放(大部分的处理都是按字节处理的)。

编码方法

  8421BCD编码
  这是一种使用最广的BCD码,是一种有权码,其各位的权分别是(从最有效高位开始到最低有效位)8、4、2、1(即23、22、21、20),因而称为“8421BCD编码”。
  

8421BCD

  在使用8421BCD码时一定要注意其有效的编码仅十个,即:0000~1001。4位二进制数的其余6个编码1010、1011、1100、1101、1110、1111不是有效编码。8421BCD编码如表2-3所示。这种BCD编码实际上就是0~9的“等值”二进制数。
  2421BCD编码
  2421BCD码也是一种有权码,其从高位到低位的权分别为2、4、2、1(同样也是它得名的原因),其也可以用4位二进制数来表示1位十进制数。
  余3码
  
余3码也是一种BCD码,但它是无权码。但由于每一个码对应的8421BCD码之间相差3,故称为余3码,其一般使用较少,故只须作一般性了解。
  用BCD码进行进制的转换时,要求在两种进制的表现形式上快速转换,而不是要求在“数值相等”的含义快速转换。
  例如求十进制数2000的BCD编码和其二进制数。
  2000的BCD编码是把每位上的数2、0、0、0分别转换为其对应的BCD编码:0010、0000、0000和0000,把它们合在一起就是2000的BCD编码:0010000000000000。
  十进制数2000的二进制数是:11111010000,它们在数值上是相等的。
  将十进制数86.5转换为BCD码,最终的结果是:(10000110.0101)BCD。
  将BCD码10010111.0100转换为十进制数的结果是:97.4。
  在IBMPC机中,根据在存储器中的不同存放格式,BCD码又分为:
  压缩型BCD码:一个字节中存放两个十进制数码。
  非压缩型BCD码:每个字节只存放一个十进制数。
  例如:将十进制数8762用压缩型BCD码表示,则为:1000011101100010。

移码

  表示浮点数时还常用一种称为移码的码制。浮点数的阶码表示指数大小,有正有负,为避开阶码的符号,对每个阶码都加上一个正的常数(称偏移常数),使能表示的所有阶码都为正整数,变成“偏移”了的阶码,又称“增码”。移码的值不小于0,这样阶码总为0,可以取消,浮点数小数点的实际位置由移码减去偏移常数来决定。
  一个实数可表示成一个纯小数与一个乘幂之积。如1011.101=0.1011101×2100;–0.0010011=–0.10011×2-10;–110001101=–0.110001101×21001。
  一个任意实数,在计算机内部可以用指数(为整数)和尾数(为纯小数)来表示,用指数和尾数表示实数的方法称为浮点表示法。
  浮点数的长度可以是32位、64位甚至更长,分阶码和尾数两部分。阶码位数越多,可表示的数的范围越大;尾数越多,所表示的数的精度越高。“移码”用来表示浮点型小数的阶码。对于正数,符号位为“1”,其余位不变,如+1110001的阶码为11110001;对于负数,符号位为“0”,其余位取反,最后加“1”,如–1110001的阶码为00001111。
  移码与补码的关系是符号位互为反码,例如:X=+1011时,[X]移=11011,[X]补=01011;X=–1011时,[X]移=00101,[X]补=10101。
  注意:对移码运算的结果需要加以修正,修正量为2n,即对结果的符号位取反后才是移码形式的正确结果。移码表示中,0有唯一的编码——1000…00,当出现000…00时(表示–2n),属于浮点数下溢。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多