zoukankan      html  css  js  c++  java
  • 1.7 小数的存储

    1.7.1 浮点记数法

      以8个位长度的位模式来演示浮点数的表示:

        最高位为符号位,符号位右边3位为指数域,最后4位为尾数域

      

       1. 浮点数解码

      例如:0  110  1011 对这个8位模式来表示的浮点数进行十进制的解码。第一位是0,说明这个数是个非负数

          先在最后四位的前面加一个小数点为:     .1011

          再将指数域作为一个3位的余码记数法的整数: 110 的余码表示的十进制数为正数2

          根据得到的指数域所代表的十进制数,以及正负符号,将尾数域的小数点移动,正数为右移,负数位左移。即,得到  10.11

          再将小数点移动后得到的尾数,解码为十进制数得到:2又3/4

        0 011 1100 对这个8位模式的浮点数进行解码。

          尾数域前加小数点:  .1100

          用余码记数法解码指数域: -1

          尾数域小数点左移1位: .01100 

           结果为: 2⅜

     2.浮点数编码  

      例如: 1又1/8   编码为二进制记数法的位模式为 1.001

          从最左边的1开始,复制位模式到尾数域为 1001  并假设最左边存在一个小数点为  .1001

          因为.1001 需要右移1位才能得到1.001,余数记数法表示正数1为101,指数域为101

                  此例的数值为正数,因此01011001

    1.7.2 截断误差

      依然用8位来表示浮点数。1位符号位 3位指数域 4位尾数域

      2又5/8   转换为二进制记数法为 10101,是5位长度的位模式。因此将这个位模式复制到尾数域中时会丢失掉最右边一位,就就是截断误差

      

      多个浮点数相加时,大数字+小数字,小数字可能会被截断。小数字+小数字,得到的值再+稍大的数字则不容易出现截断。因此,浮点数多个数相加时,相加的顺序很重要。

  • 相关阅读:
    18周个人总结
    十六周个人总结
    排球积分规则程序
    十四周软件工程总结
    本周总结
    排球积分规则
    我的计算机生涯
    排球比赛记分员
    《怎样成为一个高手》观后感
    冲刺作业
  • 原文地址:https://www.cnblogs.com/mysic/p/9880517.html
Copyright © 2011-2022 走看看