float浮点/double双精度浮点和二进制的相互转换,小白也能看明白!

二进制文件包含了太多的数据,如何看懂二进制文件,决定于基础。

文章目录

  • 前言
    • 1、重点知识
      • 1.1何为二进制文件
      • 1.2浮点和双精度的浮点如何生成二进制
        • 1.2.1 float和double的基础知识
        • 1.2.2 IEEE754约束的重点
        • 1.2.3 浮点是如何表示二进制
      • 1.3 例子说明
    • 双精度double的转换方式一样,可以参考float的说明。


前言

`提示:无规矩不成方圆,我们先看一下IEEE754对float和double的约束,点击查看

1、重点知识

1.1何为二进制文件

二进制文件,故名思意就是进制为2的文件。

1.2浮点和双精度的浮点如何生成二进制

在没有统一之前,各个公司对其的操作方式不一,导致系统间的耦合性非常低。那么自然需要形成一个统一的局面。IEEE 754自然应运而生,形成了一套约束方案。

1.2.1 float和double的基础知识

名称字节长度对应位数
float4字节32位
double8字节64位

1.2.2 IEEE754约束的重点

名称符号位Sign长度Expont指数Fraction小数长度位元长度e
float1需计算需计算8
double1需计算需计算11

这里先说明一下:指数偏移值(exponent bias),即浮点数表示法中指数域的编码值,等于指数的实际值加上某个固定的值。e为存储指数的位元的长度。

1.2.3 浮点是如何表示二进制

在这里插入图片描述

1.3 例子说明

-------------------------------
这里是伪代码,只做逻辑上面的说明!
-------------------------------
1、将float 类型的3.14转换成二进制,该如何思考?
/**
首先将3.14拆解成3和0.14两个部分。
整数部分3对应的二进制:0011
小数部分0.14该如何转换成二进制呢?计算的时候为什么要乘以2取整数作为二进制的数呢?下面我们看一个说明:
0.14里面有多少个0.5  0.14/0.5=0.14*2=0.28 结果是0个
0.14里面有多少个0.25  0.14/0.25=0.14*4=0.56 结果是0个
0.14里面有多少个0.125 0.14/0.125=0.14*8=1.12 结果是1个,此时满2进1了。
(0.14-0.125)里面有多少个0.0625  0.015/0.0625=0.015*16=0.24  结果为0
以此类推~,知识变换了一种方式,整数部分除以2,小数部分乘以2
我们类比一下十进制的数:100.1 整数部分有10个10(100/10),小数点0.1有1个十分之一
我的理解:计算机没有特定存储小数,只是变化了一种方式。
**/

在这里插入图片描述

通过1.2.3的介绍,我们整合的结果为:11.0010001111010111000011 ,将其转化成指数形式:1.1.0010001111010111000011*2^1
在IEEE中规范,在二进制,第一个有效数字必定是“1”,因此这个“1”并不会存储。

符号位sign:正数为0,负数为1 此题的符号位为:0
Exponent:指数位1,但实际值=指数值加上固定偏移值2^(位元长度8-1)-1=127,十进制数位127+1=128,其二进制结果位:10000000
Fraction长度(32-1(符号位长度)-8(位元长度)-exp因子数):22
eg:这里说明一下整数3的二进制为11占用了两位,32位-位元长度8-符号位长度-整数部分占用的位数,则为22位!

最后我们整合为:浮点3.14的二进制结果为:0 10000000 10010001111010111000011 ,
方便阅读,从右到左每4位进行组合:0100 0000 0100 1000 1111 0101 1100 0011
转化成十六进制则为:0x4048f5C3

双精度double的转换方式一样,可以参考float的说明。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/23161.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

市面上常见的语音芯片的IO口有哪些作用

语音芯片的IO口有哪些作用? 语音芯片的IO口一般有多种用途,包括以下几种: 1. 语音输入:可以通过外部麦克风接口,将外部声音信号输入到语音芯片中,进行语音信号处理。 2. 语音输出:语音芯片可…

Java版电子招投标系统源码之了解电子招标投标全流程

随着各级政府部门的大力推进,以及国内互联网的建设,电子招投标已经逐渐成为国内主流的招标投标方式,但是依然有很多人对电子招投标的流程不够了解,在具体操作上存在困难。虽然各个交易平台的招标投标在线操作会略有不同&#xff0…

【MySQL】实验十 E-R图

文章目录 1. 学校2. 院系3. 图书馆4. 舰队5. 工厂6. 网购7. IT8. 医院9. 公司1. 学校 设有如下实体: 班主任:工号、姓名、电话 班级:班号、专业、毕业总学分 学生:学号、姓名、性别、年龄 课程:课程号、课程名 上述实体中存在如下联系: (1)一个班主任管理一个班级,一…

字节跳动五面都过了,结果被刷了,问了hr原因竟说是...

摘要 说在前面,面试时最好不要虚报工资。本来字节跳动是很想去的,几轮面试也通过了,最后没offer,自己只想到几个原因:1、虚报工资,比实际高30%;2、有更好的人选,这个可能性不大&…

分布式事务

一、为什么需要分布式事务: 分布式事务是指 会涉及到操作多个数据库(服务)的事务。 其实就是将对 同一数据库(服务)事务的概念扩大到了多个数据库(服务)的事务。 目的是为了保证分布式系统中的数据一致性。 二、分布式事务XA规范…

RHCE第五次作业

1.总结变量的类型及含义? 2.实现课堂案例计算长方形面积?(6种方式) 3.定义变量urlhttps://blog.csdn.net/weixin_45029822/article/details/103568815(通过多种方法实现) 1)截取网站访问的协议 …

如何在华为OD机试中获得满分?Java实现【字母组合】一文详解

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述4. Java算法源码5. 测试6.解题思路1. 题目描述 每个数字对应多个字母,…

2023年,真的别裸辞....

作为IT行业的大热岗位——软件测试,只要你付出了,就会有回报。说它作为IT热门岗位之一是完全不虚的。可能很多人回说软件测试是吃青春饭的,但放眼望去,哪个工作不是这样的呢?会有哪家公司愿意养一些闲人呢?…

node.js PM2部署项目

文章更新 2023-05-21 更新NSSM安装服务的方式 pm2 是什么 pm2 是一个守护进程管理工具,它能帮你守护和管理你的应用程序。通常一般会在服务上线的时候使用 pm2 进行管理。本文围绕以下重点进行讲解:安装pm2;命令行部署到PM2;PM2查看日志等命…

PLX31-EIP-MBTCP 以太网/IP到Modbus TCP/IP

PLX31-EIP-MBTCP ProSoft Technology的EtherNet/IP to Modbus TCP/IP通信网关允许在支持EtherNet/IP的控制器或设备与Modbus TCP/IP控制器或设备之间进行高速双向数据传输。 我们的Modbus TCP/IP驱动程序具有多种客户端和服务器功能,可实现更快的数据传输。此外&a…

【Linux】普通用户无法使用sudo指令的方法

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:Linux 🎯长路漫漫浩浩,万事皆有期待 上一篇博客:【Linux】…

云计算安全

前言 什么是云计算? 云计算就是一种新兴的计算资源利用方式,云计算的服务商通过对硬件资源的虚拟化,将基础IT资源变成了可以自由调度的资源池,从而实现IT资源的按需分配,向客户提供按使用付费的云计算服务。用户可以…

智能排班系统 【管理系统功能、操作说明——中篇】

文章目录 页面与功能展示企业管理角色管理用户管理系统管理员身份使用企业管理员身份使用门店管理员身份使用 门店管理职位管理排班规则设置节日管理消息管理 页面与功能展示 企业管理 企业管理页面如图 34所示,在企业管理页面,系统管理员可以查询所注…

Unity Shader variants (shader 变体)

官方地址 https://docs.unity3d.com/cn/2022.2/Manual/SL-MultipleProgramVariants.html 教程可以看这里 https://www.jianshu.com/p/48ad75f0b4b9 https://www.jianshu.com/p/3e6b84317097 变种用我自己的理解就是 能用程序控制的shader 举个例子 这里声明了 a b c d 四个变…

cpu 内核 逻辑处理器的关系

6核CPU,12个逻辑处理器 一颗内核在一个时间片内只能执行一个内核线程;当物理CPU使用了超线程技术后,在CPU的一颗内核中,利用就是利用其中空闲的执行单元,模拟出另外一个核心(并不是真正的物理运算核心&…

详解C语言assert宏

前言:我们经常在写代码时,发现一些大牛的代码中总有一句assert(表达式),经过在网上的学习,笔者也浅显的了解了assert的相关知识,assert一般用于规范代码,避免不必要的错误&#xff0…

【WOA-LSTM】基于WOA优化 LSTM神经网络预测研究(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【机器学习】信息量、香农熵、信息增益(增加例子,方便理解)

这节可以搭配 【机器学习】Logistic回归(重新整理)信息量(信息)信息量公式的推理过程 香农熵信息增益 【机器学习】Logistic回归(重新整理) B站视频:“交叉熵”如何做损失函数?打包…

css元素的显示和隐藏

1. display显示隐藏 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><st…

类和对象 --- 封装+对象特性

&#x1f442; 快乐E调 - 林澜叶 - 单曲 - 网易云音乐 &#x1f442; Plain Jane (Freestyle) - Ombre2Choc Nation - 单曲 - 网易云音乐 1.5倍速&#xff0c;跟着敲&#xff0c;初识C 目录 &#x1f3c6;封装 &#x1f333;属性和行为作为整体 &#x1f333;案例 -- 设置…