浮点数在计算机中的编码方式

本文介绍了浮点数在计算机中的表示方式,遵循IEEE编码标准。以32位float类型为例,详细解释了符号位、指数位和尾数位的设定,并通过实例展示了如何将12.25f、-0.125f和1.3f转换为二进制和十六进制的浮点数编码。
摘要由CSDN通过智能技术生成

在阅读《C++反汇编与逆向分析技术揭秘》一书中遇到了一个有趣的问题,摘出来跟大家分享下。
在这里插入图片描述

浮点数编码转换采用的是IEEE规定的编码标准,float和double这两种类型数据的转换原理相同,只是用于表示的范围有些区别,IEEE规定的浮点数编码会将一个浮点数转换为二进制数。**以科学记数法划分,将浮点数拆为3部分:符号、指数、尾数。
float类型在内存中占4字节(32位)。其中最高位用于表示
符号**;再剩下的31位中,从右往左取8位用于表示指数,其余的表示尾数,如上图所示

以12.25f为例:
12.25对应的二进制:1100.01,整数部分为1100,小数部分为01。(整数理解不难,小数为什么这样呢?)
小数部分转化二进制采用的是不同方法:十进制小数转换成二进制小数采用"乘2取整
不了解的同学点这里:小数转化二进制的方法

具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值