IEEE 754浮点数表示

news2024/11/14 21:27:49

浮点数组成

单精度浮点数(32位)为例说明:

十进制浮点数组成:

十进制基数(base)为10
在这里插入图片描述

二进制浮点数组成:

二进制基数(base)为2

以IEEE 754标准表示十进制数: ( 7.625 ) 10 (7.625)_{10} (7.625)10,先将其转成二进制表示: ( 111.101 ) 2 = 1.11101 ∗ 2 2 = 2 2 ∗ ( 1 + 0.11101 ) (111.101)_{2}=1.11101*2^{2}=2^{2}*(1+0.11101) (111.101)2=1.1110122=22(1+0.11101)

将以上二进制以IEEE 754标准存入内存中如下:
在这里插入图片描述

浮点数 二进制小数转十进制小数公式: s i g n ∗ 2 E ∗ ( 1 + m a n t i s s a ) sign*2^{E}*(1+mantissa) sign2E(1+mantissa) 这里的 E E E是实际指数(下面会说明 E E E的计算)而不是存储在内存中的指数。

IEEE 754 浮点数概述

在这里插入图片描述

IEEE 754 规范化浮点数

sign规定

0为正

1为负

exponent规定

指数部分有正有负,因此IEEE 754标准中采用有偏指数(The Biased exponent)表示。这意味着存储在内存中的指数部分 e e e并不是实际的指数 E E E。存储在内存中的指数 e e e为实际指数 E E E加上偏移常数(Bias)。
对于单精度浮点数(32位)为例,实际指数 E E E和存储的指数 e e e之间的关系如下:
E = e − 127 E=e-127 E=e127
这里,127是偏移常数(Bias)。偏移常数计算采用: 2 n − 1 − 1 2^{n-1}-1 2n11,这里的 n n n为存储指数的bit位数。对于单精度浮点数,指数部分占8位(即 n = 8 n=8 n=8),因此偏移常数是 2 8 − 1 − 1 = 127 2^{8-1}-1=127 2811=127

mantissa规定

通过移位操作将小数点前的值固定为1。

mantissa为23位,但是小数点前有固定为1的一位,因此尾数部分比实际多一位,共24位(significand)

IEEE 754 非规范化浮点数

非规范化浮点数表示0和接近0的值

exponent规定

exponent部分全为0。

偏移值比规范化的偏移值小1。即: 2 n − 1 − 2 2^{n-1}-2 2n12,以单精度浮点数为例 2 8 − 1 − 2 = 126 2^{8-1}-2=126 2812=126表示0。指数位全为0,则是-126。

mantissa规定

规范化浮点数表示,mantissa部分有一个省略的前导1

非规范化浮点数表示,当指数位全为0时,mantissa部分没有被省略的前导1

特殊值

Infinity值

在这里插入图片描述
在这里插入图片描述

NaN(Not a Number)值

在这里插入图片描述
在这里插入图片描述

好用的几个工具

  1. base convert
  2. float toy

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

异常冲突行为和危险识别系统源码分享

异常冲突行为和危险识别检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Co…

《微信小程序实战(1)· 开篇示例 》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

Vue3 响应式工具函数isRef()、unref()、isReactive()、isReadonly()、isProxy()

isRef() isRef():检查某个值是否为 ref。 isRef函数接收一个参数,即要判断的值。如果该参数是由ref创建的响应式对象,则返回true;否则,返回false。 import { ref, isRef } from vue const normalValue 这是一个普通…

【网络安全的神秘世界】ssrf服务端请求伪造

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 ssrf 一、SSRF原理及漏洞演示 1.1 漏洞简介 SSRF(Server-Side Request Forgery:服务端请求伪造&am…

kafka之protobuf

Protobuf 的 .proto 文件是一种描述消息结构的定义文件,使用这种文件可以定义数据结构(消息),然后生成对应语言的类或代码用于序列化和反序列化数据。生成 .proto 文件涉及到编写 .proto 文件定义,然后通过 protoc 编译…

Acrobat XI 安装教程

软件介绍 Adobe Acrobat 是由Adobe公司开发的一款PDF(Portable Document Format,便携式文档格式)编辑软件。借助它,可以以PDF格式制作和保存文档,以便于浏览和打印,同时还可以使用一些高级工具来创建、编辑…

Linux PTP 测量实操 (IEEE 1588)

测量 IEEE 1588 需要使用 linuxptp 这个工程, 官网是 https://linuxptp.sourceforge.net/ 获取代码可以通过git git clone git://git.code.sf.net/p/linuxptp/code linuxptp 如果是当前环境本地编译的话, 直接在下载好的代码路径make就可以. 如果需要在开发板上面使用的话…

通信工程学习:什么是接入网(AN)中的TF传送功能

接入网(AN)中的TF传送功能 在通信工程中,TF(Transfer Function)传送功能是指为接入网(AN)不同位置之间提供通道和传输介质,以实现数据的有效传输。以下是关于TF传送功能的详细解释&a…

水滴式粉碎机:辣椒粉碎轻松搞定

在食品加工行业中,辣椒作为一种重要的调味品,其加工方式直接影响到产品的口感。水滴式粉碎机的粉碎方式不仅保留了辣椒原有的色泽、香味和营养成分,还减少了加工过程中的热损失和氧化反应,确保了辣椒粉的品质。 精细度与均匀度&am…

Kafka 消息丢失如何处理?

今天给大家分享一个在面试中经常遇到的问题:Kafka 消息丢失该如何处理? 这个问题啊,看似简单,其实里面藏着很多“套路”。 来,咱们先讲一个面试的“真实”案例。 面试官问:“Kafka 消息丢失如何处理&#x…

基于SSM+Vue+MySQL的在线医疗服务系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着医疗信息化的快速发展和患者对便捷医疗服务需求的日益增长,开发一个高效、可靠的在线医疗服务系统显得尤为重要。基于SSM(SpringSpring MVCMyBatis)框架、前端采用Vue.js、后端连接MySQL数…

CrossOver24.0.5破解版免费下载和永久激活图文教程,苹果电脑怎么玩《黑神话:悟空》

CrossOver24可以玩《黑神话:悟空》么?答案是可以的。 1、首先我们需要下载CrossOver24软件。 CrossOver24安装包夸克网盘链接:https://pan.quark.cn/s/35e64d746778 2、下载完成后,我们双击CrossOver.pkg开始安装,然…

LeetCode[简单] 141.环形链表

给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(…

C++初阶学习——探索STL奥秘——模拟实现list类

1、基本框架 list 由三个类构建而成: 节点类:每个节点必须的三部分(指向前一个节点的指针、指向后一个节点的指针、当前节点存储的数据) 迭代器类:此时的迭代器为双向迭代器,比较特殊,需要对其进行封装,如 it并非使迭代器单纯向后移动&…

QT添加图标标题和打包项目

QT项目打包 项目的标题和图标标题项目图标exe图标 可执行文件——生成exeexe运行报错“找不到qt6gui.dll”等 相关库文件——生成zip安装包打包程序——生成exe安装包 项目的标题和图标 项目打包要好看点,得有个好点的标题和图标,这次打包的项目是我上一…

excel如何快速选中某个数字或者某串数字

鼠标光标放在某个数字或者某串数字的末尾,进行双击鼠标左键即可 (就会选中当前鼠标光标前相邻的所有数字):

【Node.js】RabbitMQ 延时消息

概述 在 RabbitMQ 中实现延迟消息通常需要借助插件(如 RabbitMQ 延迟队列插件),因为 RabbitMQ 本身不原生支持延迟消息。 延迟消息的一个典型场景是,当消息发布到队列后,等待一段时间再由消费者消费。这可以通过配置…

【拦截导弹】

​ 题目 ​​ 题解 题解:1010. 拦截导弹(dp与贪心) - AcWing 我谈几点: 第一,由此复习了upper_bound和lower_bound函数 第二,由此学习了贪心方式求“最多分割不严格递减子序列的数目”和“最长不严格递…

算法参数对拥塞控制的影响

来看看参数对公平收敛的影响。仅假象一下就知道应该是个加权公平,但事实如何,还是要具体看一下。 首先看 aimd,标准的 reno 算法是每 round 之后 cwnd 加 1,但如果有些流加 1,有些流加 2,会如何&#xff1…

踩坑【已解决】:使用maven打印结果是控制台输出中文乱码

报错原图: 解决方案: 1、修改maven->runner中的配置添加如下信息: -Dfile.encodingUTF-8 2、检查编码的配置信息: 3、检查窗口右下角的配置信息: 解决结果: