【计算机组成】计算机中定点数和浮点数

本文深入探讨计算机中数的定点与浮点表示,包括原码、反码、补码的不同范围,以及浮点数如何通过阶码和尾数实现大范围和高精度的数值表示。详细解析了浮点数的规格化过程,最小最大正负数值计算,并介绍了IEEE754标准。
摘要由CSDN通过智能技术生成

计算机中数的定点表示和浮点表示

一. 定点表示

在这里插入图片描述

  • 小数点按约定方式标出

    定点计算机里面小数点的位置(数的定点表示方式):

    小数点在数符位的后面的话:表示的数据是小数

    小数点数值部分的后面的话,表示的数据是整数

定点机小数定点机整数定点机
原码-(1 - 2^( - n ))~ + ( 1 - 2^( - n ))- (2^n - 1)~ +(2^n - 1))
补码- 1 ~ + ( 1 - 2^( - n ))- 2^n ~ + ( 2^n - 1)
反码-(1 - 2^( - n ))~ + ( 1 - 2^( - n ))- (2^n - 1)~ +(2^n - 1)

二.浮点数表示

  • 为什么要引入浮点数类型
  • 程序员要调节小数点的位置
  • 数的表示范围小,为了能表示相差很大的数据,需要很长的机器字长
  • 存储利用率较低
1)浮点数的一般形式
  • 在这里插入图片描述

    注意:尾数的绝对值小于等于1
    j 整数,可正可负

2)浮点数在计算机中的表现形式
  • 在这里插入图片描述

3)浮点数的表示范围
  • 在这里插入图片描述
    最小的负数: 绝对值是最大的、尾数部分绝对值最大(原码表示)

    阶符阶码数符尾数
    0111(共m个)11111(共n个)
    阶符、阶码(最大)负数最小

    尾数部分总共为n位: 尾数的最大值为1 - 2^(-n)

    阶码部分总共为m位: 阶码的值最大为:2^m - 1

    所以最小的负数为: - (2^m - 1 ) * ( 1 - 2^(- n))

    • 最大的负数: 接近于0。尾数的绝对值最小,阶码最小
    阶符阶码数符尾数
    1111111(共m个)10000001(共n个)
    阶符、阶码(最小)负数最大

    尾数部分为n位: 尾数的绝对值最小位 - 2^( - n)(数符:为1,剩余位的n-1位为0,最后一位为1)

    阶码部分共m位: 阶码的值位2^m - 1(阶符:应该位1,剩余位也为1)

    最小的负数: - 2 ^-(2 ^ m - 1) * 2 ^ ( - n)

    • 最小的正数: 阶符位为负,阶码全为1,尾数最小,数值位为正
    阶符阶码数符尾数
    11111111(共m个)0000001(共n个—n-1个0)
    阶符、阶码(最小)正数最小

    最小的正数: 2 ^-(2 ^ m - 1) * 2 ^ ( - n)

    • 最大的正数: 尾数全1,阶码全为1,阶符位和数符位为正
    阶符阶码数符尾数
    0111111(共m个)011111111(共n个1)
    阶符、阶码(最大)正数最大

    最大的正数: 2(2m - 1) * (1 - 2^ (- n))

    上溢 阶码 > 最大阶码

    下溢 阶码 < 最小阶码

  • 练习:

    在这里插入图片描述在这里插入图片描述
    由题:算出当阶码取“4”的时候,即可取到±30000的数值。尾数保留的位数越长(尾数尽可能的长),精度越大, 所以选择阶码取4位,尾数取24-4-1-1=18位。

4)浮点数的规格化
  • 尽可能的保持精度、有效的尾数足够的多

    在这里插入图片描述在这里插入图片描述
    数据在进行移位的时候,要保证数据真值不变

  • 练习1

    在这里插入图片描述

    正数最大值2^ (2^4-1)*( 1 - 2^(-10)) = 2^15 * (1 - 2^(-10))
    正数最小值2^(-( 2^4 - 1)) * ( 2^(-1)) = 2^( - 15) * (2^(-1)) = 2^(-16)
    负数最大值-2(-(24 - 1)) * (2^(-1)) = -2^( - 15) *(2^(-1)) = -2^(-16)
    负数最小值-2(24-1)*( 1 - 2^(-10)) = -2^15 * (1 - 2^(-10))
  • 练习2

    在这里插入图片描述
    > 解:+(19)/128 = 10011/128 = 10011向右移动了7位

    0.0010011---->添加成10位,变成0.0010011000

    定点表示: 0.0010011000

    浮点规格化形式: 0.10011000*2^(-10)

    定点机中: [x]原 = [x]反 = [x]补 = 0.0010011000

    浮点机中: [x]原 = 1, 0010 ; 0.10011000

    ​ [x]补 = 1, 1110; 0.10011000

    ​ [x]反 = 1, 1101; 0.10011000

5)机器零
  • 当浮点数尾数为0时,不论其阶码为何值,按机器零处理

  • 浮点数阶码等于或小于它所表示的最小数时,不论尾数为何值,按机器零处理

    • 如 m = 4 n = 10

      当阶码和尾数都用补码表示时,机器零为

      ​ X, X X X X; 0 . 0 0 … 0

      (阶码=-16) 1, 0 0 0 0; X . X X … X

      ​ 当阶码用移码,尾数用补码表示时,机器零

      ​ 0, 0 0 0 0; 0 . 0 0 … 0

6)IEEE 754标准
  • 在这里插入图片描述
    尾数为规格化表示的(尾数规格化,见上图)

    非“0”的有效位最高位为“1”(隐含->基值为2时)

    符号位S阶码尾数总位数
    短实数182332
    长实数1115264
    临时实数1156480
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值