浮点数编码介绍

2025-02-26 18:04:11
推荐回答(3个)
回答1:

(1)浮点数:
  小数点位置可移动的数据称为浮点数,可用下式表示:N=M*RE
其中,M—尾数,
   R—阶的基数(也就是指数部分的底)。R 一般取2、8或16,为约定的常数,大多数机器 R 取定为2。
   E—阶的阶码。

  当基数约定后,对浮点数的编码就只需对尾数和阶码部分进行编码。浮点数在机器中的形式如下:
              
尾数M用定点小数表示,阶码E是整数。 M乘以RE后小数点的位置改变,改变指数部分RE的值,小数点的位置随之变动,故称上述表示法表示的数据为浮点数。

(2)浮点数的编码
  阶码E一般用移码或补码表示,尾数用原码或补码表示。
 机器零 当浮点数的尾数部分M=0时,不论阶码为何值,都看作是零值,称为机器零。
 上溢 浮点数的绝对值太大而机器不能表示的情况,此时浮点数的阶码大于机器所能表示的最大阶码。
 下溢 浮点数的绝对值太小(阶码小于机器所能表示的最小阶码)的情况称为下溢。当浮点数下溢时,通常将尾数各位强置为零 ,按机器零处理。
        

(3)规格化浮点数
  为了便于浮点数之间的运算与比较,也为了提高浮点数的精度,规定计算机中的浮点数尾数部分必须满足1/R≤|M|<1,也即,小数点后的第一位必须是有效数字。当尾数用补码表示,且R=2时,其规格化形式一般为:
                
上式表明,当尾数的最高数值位与符号位相反时,即为规格化形式。但对于M<0 有两种特殊情况需考虑。
   *M=-1/2,按规定是规格化数,但[-0.5]补=1.10…0,与一般情况相悖,为便于硬件判断,特规定-0.5不    是规格化的数(对补码而言)。
   *M=-1,因小数补码允许表示-1,且[-1]补=1.00…0.故将-1作为规格化数(对补码而言 )

(4)IEE754标准
现代计算机中,浮点数一般采用IEEE制定的国际标准,形式如下;
符号位s 阶码e 尾数 总位数
     短实数(单精度数) 1 8 23 32
     长实数(双精度数) 1 11 52 64
     临时实数 1 15 64 80

在IEEE754浮点数标准中,符号位也是“0”表示正数,“1”表示负数。阶码也用移码表示,尾数也是规格化表示,但为如下形式:1.ff---f.在实际表示中,整数位的1省略,称隐藏位 (临时实数不采用隐藏位方案)。由于尾数形式的变化,阶码部分也与一般移码不同,对短实数而言,[X]移=27+x-1=127+x,也就是说此种移码比一般移码的值小1,如.[810]移为13310 而不是13410。所以,短实数.长实数和临时实数的阶码偏移量分别为7FH、3FFH和3FFFH。单精度数所表示的数值为:(-1)5 1.ff---f*2e-127。
注意:浮点数的编码有多种方法,在实际应用时,首先一定要明确是哪种编码方法,分清各种编码方法的不同之处,这样才能不出差错。

4.文字的编码
(1) 西文字符的编码 目前常用的编码系统是ASCII码(American Standard Code for Information Interchange)。
ASCII码特点:
*每个字符用7位二进制代码表示。在计算机中每个符号实际用8位表示,最高位置“0”或作为奇偶校验位。
*共有128个符号。其中95个可印刷字符(包括空格),其余为控制字符。
*字符0——9的高3位编码为011,低4位为0000——1001(正好为二进制形式的0—9),满足正常的排序关系,且大、小写英文一位字母编码的对应关系简单,大写字母的高2位编码10,低5位为00001-11010(为二进制形式的1—26),小写字母高2位为11,低5位也为0000—11010。
(2)中文编码
汉字编码分输入码、机内码和字形码等三大类。
汉字输入码  主要有数字编码、拼音编码和字形编码等。这几种编码方式都是利用相应的编码规则,用字母数字串代
      替汉字,从西文标准键盘上输入汉字。
汉字机内码 用于汉字信息存储、交换、检索等的机内代码,一般用两个或三个字节表示一个汉字。为了区别于ASCII
      码,汉字机内代码中字节的最高位均为“1”。
汉字字形码 根据汉字字形信息进行编码,存储在字形库中,用于汉字的输出,常用点阵表示汉字字形。
(3)十进制数的编码
*字符串形式  一个字节存放一个十进制的数位或符号,用连续的多个字节表示一个完整的十进制数据。
十进制数据的机内表示常用ASCII码。有前分隔字符串和串两种方式。
#前分隔字符串  符号位在数字位之前单独占用一个字节。字符“+”(2B)16表示正号,“-”(2D)16表 示负号。
#后嵌入字符串 将符号位嵌入最低一位数字里。规则:将“-”号变成(40)16与最低位数相加。“+”号省略。
上述两种表示方法主要用于非数值计算的应用领域,算术运算不方便。
*压缩十进制数串形式  一个字节存放两个十进制数位,用连续的多个字节表示一个完整的十进制数据。比前一种形式节省存储空间并且便于数据处理,应用广泛。
  在压缩十进制数串形式中,可以用ASCII码的低4位或BCD码表示十进制数。符号位也用4位二进制代码表示,并放在最低数位之后(C)16=(1100)2代表正号,(D)16=(1101)2表示负号。
  用十进制数串表示十进制数据的特点是位长可变,但需给出首地址和串长。

回答2:

恩,这个可以
http://www.ycrc.com.cn/qinghua/13/text/ch02/se03/part1/r2_3_1_3.htm
楼上已经说了,不过那是编码方法,可以看看别人写的论文
http://emuch.net/journal/article.php?id=CJFDTotal-YYKX200104004

回答3:

请朋友们给一点其他的资料!
其它资料,有用吗?
浮点数的标准 IEEE754,已经是通用的标准。
你想要其它形式,你就可以根据 754,自行改造,自产自销。