浮点数的表示—IEEE754标准

浮点数的表示—IEEE754标准

引言

我们知道,在计算机中,数字以0和1组成的二进制序列来表示。但是,对于非常大的数字以及非常接近0的数字,简单的存储方式往往会造成精度的丢失。

为了解决这个问题,提供更高效的浮点数表示方法,各大厂商纷纷推出自己的浮点数表示标准。大约在1985年,IEEE(电气和电子工程师协会)推出了754标准,从此,江湖一统。

IEEE754标准浮点格式

IEEE754标准浮点格式由三部分组成: ( − 1 ) S ∗ M ∗ 2 E (-1)^S*M*2^E (1)SM2E

  • S:符号,表示浮点数是正数(s=0)还是负数(s=1)
  • E:阶码,对浮点数进行加权。阶码被解释为以偏置形式表示的有符号整数,偏置值(Bias)为 2 ( n − 1 ) − 1 2^{(n-1)}-1 2(n1)1,n为e所占的位数(Bias单精度为 2 ( 8 − 1 ) − 1 = 12 7 10 = 0111111 1 2 2^{(8-1)}-1=127_{10}=0111 1111_2 2(81)1=12710=011111112,双精度为 2 ( 11 − 1 ) − 1 = 1023 2^{(11-1)}-1=1023 2(111)1=1023)。
  • M:尾数,用于表示小数

如下图所示,IEEE754标准浮点格式下的单精度浮点数占32位:符号占1位,阶码占8位,尾数占23位;双精度浮点数占64位。

image-20241123201454656

规格化的值

当阶码位既不全为0也不全为1时,是规格化浮点数。此时E=e-Bias,M>=1。

image-20241123205914917

例子:十进制的 ( − 0.75 ) 10 (-0.75)_{10} (0.75)10,将其转化为IEEE754格式:

  • 转化为二进制: ( − 0.75 ) 10 = ( − 3 / 4 ) 10 = − ( 2 − 1 + 2 − 2 ) 10 = ( − 0.11 ) 2 (-0.75)_{10}=(-3/4)_{10}=-(2^{-1}+2^{-2})_{10}=(-0.11)_2 (0.75)10=(3/4)10=(21+22)10=(0.11)2
  • 写为 ( − 1 ) S ∗ M ∗ 2 E (-1)^S*M*2^E (1)SM2E格式: ( − 1 ) 1 ∗ 1. 1 2 ∗ 2 − 1 2 (-1)^1*1.1_2*2^{-1_2} (1)11.12212
  • S=1,E=-1,M=1.1, e = E + B i a s = − 1 10 + 12 7 10 = − 0000000 1 2 + 0111111 1 2 = 0111111 0 2 e=E+Bias=-1_{10}+127_{10}=-0000 0001_2 + 0111 1111_2 = 0111 1110_2 e=E+Bias=110+12710=000000012+011111112=011111102,将M去除包含的最高位1只留小数部分得到 m = 2 ( − 1 ) 2 = 1000000000000000000000 0 2 m=2^{(-1)_2}=100 0000 0000 0000 0000 0000_2 m=2(1)2=100000000000000000000002
  • 组合S、e、m即得IEEE754格式: 10111111010000000000000000000000 1 011 1111 0100 0000 0000 0000 0000 0000 10111111010000000000000000000000

非规格化的值

当阶码位全为0时,是非规格化浮点数。此时E=1-Bias。

image-20241123205959482

因为M不需要>=1,所以提供了表示非常接近0值的方式。当尾数位也全为0时,表示0。

特殊值

当阶码位全为1时,是特殊浮点数。

此时,如果尾数位也全为1,当阶码位为1时代表负无穷,当阶码位为0时代表正无穷;

image-20241123210156935

当尾数位不全为1时,代表NaN,(Not a Number)不是一个数。

242156)]

当尾数位不全为1时,代表NaN,(Not a Number)不是一个数。

image-20241123210213826

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

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

相关文章

Window脚本自动化uiautomation详解_番茄出品

Window脚本自动化uiautomation详解_番茄出品 start 有时候pc端电脑,会有一些重复操作,希望能够通过代码实现这些操作。尝试了好几个库,但是识别准确率很低,在苦苦寻找之后,发现一个非常好用的 python 库 &#xff1a…

Java技术复习提升 11 常用类

第11章 常用类 1 包装类 不同包装类都继承自Object类 Serialiazble接口表示该类表示序列化 Comparable接口用于定义自然顺序 包装类和基本数据的转换 jdk5之前手动装箱拆箱 jdk5之后自动装箱拆箱 自动装箱底层调用的是valueof方法 拆箱仍然是intvalue方法 public class Inte…

Oracle - 多区间按权重取值逻辑 ,分时区-多层级-取配置方案(三)

本篇紧跟第一篇, 和 第二篇无关 Oracle - 多区间按权重取值逻辑 ,分时区-多层级-取配置方案 Oracle - 多区间按权重取值逻辑 ,分时区-多层级-取配置方案(二) 先说需求: 某业务配置表,按配置的时间区间及组织层级取方…

DASCTF 2024 10月 Reverse 完成笔记 附题目

题目链接: https://github.com/Airrcat/long_long/tree/main/DASCTF_2024_10 ezre 查PE 32位无壳 开始分析 看起来很像加壳了 字符串未有暴露信息,但是段中有一个themida 发现是一个壳,直接去找脱壳机 一些脱壳工具(Magicmida)是…

kafka进阶_2.存储消息

文章目录 一、存储消息介绍二、副本同步2.1、数据一致性2.2、HW在副本之间的传递 如果想了解kafka基础架构和生产者架构可以参考 kafka基础和 Kafka进阶_1.生产消息。 一、存储消息介绍 数据已经由生产者Producer发送给Kafka集群,当Kafka接收到数据后&#xff0c…

志愿者小程序源码社区网格志愿者服务小程序php

志愿者服务小程序源码开发方案:开发语言后端php,tp框架,前端是uniapp。 一 志愿者端-小程序: 申请成为志愿者,志愿者组织端进行审核。成为志愿者后,可以报名参加志愿者活动。 志愿者地图:可以…

SpringMVC-01-回顾MVC

1. 回顾MVC 1.1. 什么是MVC MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种架构模式。…

解决k8s拉取私有镜像401 Unauthorized 问题

拉取镜像时未指定账户和密码通常是因为需要访问的镜像仓库启用了认证,但 Kubernetes 默认配置中未提供访问凭据。要解决此问题,可以按照以下步骤配置镜像仓库的认证信息: 1. 创建 Kubernetes Secret 为镜像仓库配置访问凭据,使用…

AmazonS3集成minio实现https访问

最近系统全面升级到https,之前AmazonS3大文件分片上传直接使用http://ip:9000访问minio的方式已然行不通,https服务器访问http资源会报Mixed Content混合内容错误。 一般有两种解决方案,一是升级minio服务,配置ssl证书&#xff0c…

el-table-column自动生成序号在序号前插入图标

实现效果&#xff1a; 代码如下&#xff1a; 在el-table里加入这个就可以了&#xff0c;需要拿到值可以用scope.$index ​​​​​​​<el-table-column type"index" label"序号" show-overflow-tooltip"true" min-width"40">…

JavaEE 实现 登录+注册(采用注解方式链接数据库)

&#xff08;Spring MVC的Controller练习&#xff09; 工具&#xff1a;Tomcat 10.0.23&#xff0c;MySQL&#xff0c;JDK18 一、运行效果展示 点击运行Tomcat首先进入index.jsp页面 若已有账号点击登录即可进行登录&#xff0c;这里先点击“获取ROY6账号”去注册&#xff0…

V-rep机器人仿真软件学习笔记

常用的机器人仿真软件有哪些&#xff1f;为什么选择V-rep&#xff1f; 目前常用的机器人物理仿真软件有Gazebo、V-rep、Webots等&#xff0c;这三款都是开源软件&#xff0c;自己使用过前两种&#xff0c;Gazebo配合ROS使用功能十分强大&#xff0c;但是要在Linux系统下使用&am…

数据库中的增删改查操作、聚合函数、内置函数、分组查询

数据库中的增删改查操作、聚合函数、内置函数、分组查询 CRUD简介Create 新增语法示例单⾏数据全列插⼊单⾏数据指定列插⼊多⾏数据指定列插⼊ Retrieve 检索语法⽰例构造数据 Select全列查询指定列查询查询字段为表达式为查询结果指定别名语法⽰例 结果去重查询 Order by 排序…

Flink转换算子——flatMap/map/filter/keyby/reduce综合案例

需求: 对流数据中的单词进行统计&#xff0c;排除敏感词TMD【腾讯美团滴滴】 此处用到了一个windows版本的软件 netcat&#xff0c;具体用法&#xff0c;先解压&#xff0c;然后在路径中输入cmd,来到黑窗口。 官网地址&#xff1a;netcat 1.11 for Win32/Win64Netcat介绍及安装…

图算法 | 3、图分析与数据科学

图分析(Graph Analytics)在本质上是对图数据的处理与分析&#xff0c;其过程可以概括为图计算。 而图计算的范畴不仅包含数据的计算或分析&#xff0c;还包含元数据管理、模式管理、数据建模、数据清洗、转换、加载、治理、图分析与计算等一系列操作。 或许我们用大数据生命周…

鲸鱼机器人和乐高机器人的比较

鲸鱼机器人和乐高机器人各有其独特的优势和特点&#xff0c;家长在选择时可以根据孩子的年龄、兴趣、经济能力等因素进行综合考虑&#xff0c;选择最适合孩子的教育机器人产品。 优势 鲸鱼机器人 1&#xff09;价格亲民&#xff1a;鲸鱼机器人的产品价格相对乐高更为亲民&…

【Unity】 GamePlay开发:通用的检查点/成就/条件触发系统

特别适用于各种解谜关卡, 成就系统&#xff0c;任务系统&#xff0c;的 通用事件处理 CheckPointHandler.cs随便挂在场景中的某个物体上 (单例模式&#xff0c;场景中只要有一个&#xff09; 1) How To Use CheckPoint Events是一个列表&#xff0c;每个元素是一个组合事件&…

企业OA管理系统:Spring Boot技术实现与案例研究

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了企业OA管理系统的开发全过程。通过分析企业OA管理系统管理的不足&#xff0c;创建了一个计算机管理企业OA管理系统的方案。文章介绍了企业OA管理系统的系统分析部…

【SQL Server】华中农业大学空间数据库实验报告 实验三 数据操作

1.实验目的 熟悉了解掌握SQL Server软件的基本操作与使用方法&#xff0c;以及通过理论课学习与实验参考书的帮助&#xff0c;熟练掌握使用T-SQL语句和交互式方法对数据表进行插入数据、修改数据、删除数据等等的操作&#xff1b;作为后续实验的基础&#xff0c;根据实验要求重…

基于AXI PCIE IP的FPGA PCIE卡示意图

创作不易&#xff0c;转载请注明出处&#xff1a;https://blog.csdn.net/csdn_gddf102384398/article/details/143926217 上图中&#xff0c;在FPGA PCIE卡示意图内&#xff0c;有2个AXI Master设备&#xff0c;即&#xff1a;PCIE到AXI4-Full-Master桥、AXI CDMA IP&#xff1…