浮点数存储格式

十进制数 (17.625)₁₀ 在内存中的存储为例子:

  1. 首先,将十进制数 (17.625)₁₀ 换算成二进制数 (10001.101)₂

    换算步骤:将 17.62拆分成两部分:整数部分和小数部分。

    • 整数部分:利用模2取余法,即除以2,直到商为0,余数反转

      17 % 2 = 8 ---------> 余1 (低位)

      8 % 2 = 4 ----------> 余0

      4 % 2 = 2 -----------> 余0

      2 % 2 = 1 -----------> 余0

      1 % 2 = 0 ------------> 余1 (高位)

      即:整数部分为 10001

    • 小数部分:利用乘2取整法,即乘以2,直到乘位为0,进位顺序取

      0.625 * 2 = 1.25 ------> 取整为1 (低位)

      0.25 * 2 = 0.5 -----> 取整为0

      0.5 * 2 = 1.0 -----> 取整为1

      0.0 * 2 = 0.0 -----> 取整为0 (高位)

      即:小数部分为 0.101

      注意,小数的高位是指离小数点近的位置,反之小数的低位则是离小数点远的位置

      因此,整数部分 + 小数部分 = 10001 + 0.101 = 10001.101

  2. 再将二进制数 (10001.101)₂的小数点进行左移,换算成科学计数法形式为:

    1.0001101 * 2⁴ (注意,此处为二进制的科学计数法)

    此时,底数、指数就显而易见

    符号:因为是正数,所以符号位取0

    底数:因为小数点前必为1,所以IEEE规定只记录小数点后的就好。所以,此处的底数为:0001101

    指数:实际为4,必须加上127(转出的时候,减去127),所以为131。转换成二进制数也就是10000011

  3. 综上所述,17.625 在内存中的存储格式是:0 10000011 00011010000000000000000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值