浮点数的编码表示

目录

什么是移码

为什么要用移码来表示指数(阶码)

浮点数表示范围

IEEE754标准

Single Precision(单精度)

示例

1.机器数转换为真值

2.真值转换为机器数


什么是移码

将每一个数值加上一个偏置常数( Excess / bias)。移码是用来表示浮点数的阶。
通常,当编码位数为n时,bias取 或(如 IEEE 754)
例如:当n = 4 时,

为什么要用移码来表示指数(阶码)

便于浮点数加减运算时的对阶操作(比较大小)

浮点数表示范围

第0位数符号位S;第1~8位为8位移码表示阶码E(偏置常数为128);第9~31位为24位二进制原码小数,表示尾数M。规格化尾数的小数点后第一位总是1,故规定第一位默认的“1”不明显表示出来。这样就可以用23个位数表示24位尾数。

 

IEEE754标准

规格化数:

规定:小数点前总是“1”,故可隐含表示。

Single Precision(单精度)

  • Sign bit: 1表示negative;0表示 positive
  • Exponent(阶码)
    • SP规格化阶码范围为0000 0001 (-126) ~ 1111 1110 (127)
    • bias为127(single),1023(double)
  • Significand(部分尾数):
    • 规格化尾数最高位总是1,所以隐含表示,省1位
    • 1 + 23 bits ( single),1 + 52 bits (double)

示例

1.机器数转换为真值

已知float型变量x的机器数为BEE00000H,求x的值是多少?

  • 数符:1(负数)
  • 阶(指数)
    • 阶码: 0111 1101B = 125
    • 阶码的值:

  • 尾数数值部分:
  • 真值:

2.真值转换为机器数

已知float型变量x的值为-12.75,求x的机器数是多少?

因此,符号S=1,阶码E=127+3=128 + 2 = 1000 0010

显式表示的部分尾数 Significant = 100 1100 0000 0000 0000 0000
x 的机器数表示为: 1 1000 0010 100 1100 0000 0000 0000 0000

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值