• 浮点数阶码的计算和表示


    关于IEEE754中,一般教材提到阶码都是用移码表示,计算规则却是偏置值+阶数。

    举个栗子:

    关于移码的一个问题,有点糊涂了

    比如说IEEE 754的浮点数表示,在32位浮点寄存器中,-8.25的16进制表示是多少。
    我怎么算都是C1840000H,而答案是C1040000H。
    这其中的差别就在阶码上。阶码是用移码表示的。8.25也就是1000.01,就是1.00001乘以2^3.阶码是3.
    问题来了。根据 移码就是补码符号位取反,3的补码是0000011.所以移码就是10000011;
    可是答案里面说,移码就是127+3=130.所以是10000010;

    上面的问题来源于百度知道,也是昨天困扰我的一个问题,查阅了相关资料才知道原来这里的阶码并不是直接用移码表示的,

    准确来说是用阶数的移码减一表示的,所以3的移码10000011B减一即:10000010B,数值上等于 偏置值+阶数,即127+3=130(10000010B)。

    这里的减一也从侧面理解了为啥阶码的数值范围是一般都是1~254 or 1~2046 。比如8位阶码的短浮点数,当阶码为1111 1111B

    移码数值为+127即2的128(127+1即实际的阶数)次方已超过短浮点数可表示的范围,算为无穷大。

  • 相关阅读:
    POJ 1044: Date bugs
    POJ 1017: Packets
    POJ 1014: Dividing
    POJ 1012: Joseph
    POJ 1011: Sticks
    POJ 1008: Maya Calendar
    POJ 1005: I Think I Need a Houseboat
    为什么要自动化测试
    微软CodeDom模型学习笔记(全)
    概念完整性
  • 原文地址:https://www.cnblogs.com/xunzhaorendaxia/p/9332353.html
Copyright © 2020-2023  润新知