浮点数的表示—IEEE754标准

news2024/11/25 3:53:54

浮点数的表示—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

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

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

相关文章

uniapp vue2项目迁移vue3项目

uniapp vue2项目迁移vue3项目,必须适配的部分 一、main.js 创建应用实例 // 之前 - Vue 2 import Vue from vue import App from ./App Vue.config.productionTip false // vue3 不再需要 App.mpType app // vue3 不再需要 const app new Vue({ ...App }) …

计算机网络(14)ip地址超详解

先看图: 注意看第三列蓝色标注的点不会改变,A类地址第一个比特只会是0,B类是10,C类是110,D类是1110,E类是1111. IPv4地址根据其用途和网络规模的不同,分为五个主要类别(A、B、C、D、…

Unity DOTS中的Entity

Unity DOTS中的Entity 在DOTS中entity往往只被看作一个ID,用来查找component,但实际上Unity为了有效地管理entity,在背后还做了一些其他的工作。首先是Entity类本身的定义,它的确跟一个ID差不多,只包含了两个int类型的…

SpringBoot实现单文件上传

一、在springBoot项目中的pom.xml添加依赖。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> 二、在资源目录下的static目录下中创建一个upload.html的表单文件…

CNN—LeNet:从0开始神经网络学习,实战MNIST和CIFAR10~

文章目录 前言一、CNN与LeNet介绍二、LeNet组成及其名词解释2.1 输入2.2 卷积层2.3池化层2.4 全连接层2.5 总结 三、MNIST实战3.1 构建神经网络3.2 数据处理3.3 &#xff08;模板&#xff09;设置优化器&#xff0c;损失函数&#xff0c;使用gpu(如果是N卡有cuda核心)&#xff…

PVE系统中风扇驱动安装——linux 硬件驱动安装(IT8613E为例)

本文提供全流程命令代码,IT8613E的Github下载地址,pve头文件官方下载地址 对网卡驱动感兴趣的可以看这篇文章 linux系统下 usb网卡的驱动安装_0bda:a192-CSDN博客文章浏览阅读1.5w次,点赞16次,收藏72次。本文介绍如何通过lsusb查找USB网卡vid:pid,使用google搜索驱动信息…

美国人工智能国家安全备忘录核心解读(下)

文章目录 三、美国国内和国际人工智能治理策略1.保证AI政策有效执行的协调措施2.推进AI治理格局的优势地位&#xff08;1&#xff09;对于美国盟友&#xff1a;试图向盟友保证其将从美国的战略中获益。&#xff08;2&#xff09;对于美国的战略竞争对手&#xff1a;介绍了超越竞…

工具学习_Docker

0. Docker 简介 Docker 是一个开源平台&#xff0c;旨在帮助开发者构建、运行和交付应用程序。它通过容器化技术将应用程序及其所有依赖项打包在一个标准化的单元&#xff08;即容器&#xff09;中&#xff0c;使得应用程序在任何环境中都能保持一致的运行效果。Docker 提供了…

红黑树模拟实现STL中的map与set

1.map 在C标准模板库(STL)中&#xff0c;std::map是一种非常实用且强大的容器&#xff0c;它提供了键值对的存储机制。这使得std::map成为处理具有唯一关键的关联数据的理想选择。 1.1 map的特性 1、键值对存储&#xff1a;std::map通过键值对的形式存储数据&#xff0c;其中…

【数据结构专栏】二叉搜索树(Binary Search Tree)的剖析?

文章目录 &#x1f9e8;前言1、二叉搜索树的基本概念&#xff1f;2、二叉搜索树的节点结构组成&#xff1f;3、二叉搜索树的插入操作&#xff1f;4、二叉搜索树的删除操作&#xff1f;5、二叉搜索树的遍历&#xff1f; 6、二叉搜索树的性能分析&#xff1f; &#x1f389;完整代…

FastApi学习第三天:两表联查

两表联查 在 FastAPI 中&#xff0c;使用 Tortoise ORM 查询两表联查&#xff08;通常是通过外键关系进行联接&#xff09;是非常简单的。可以使用 select_related 或 prefetch_related 来执行联表查询&#xff0c;它们类似于 Django ORM 的 select_related 和 prefetch_relate…

Redis原理及应用

Redis简介 Redis是开源的&#xff08;BSD许可&#xff09;&#xff0c;数据结构存储于内存中&#xff0c;被用来作为数据库&#xff0c;缓存和消息代理。它支持多种数据结构&#xff0c;例如&#xff1a;字符串&#xff08;string&#xff09;&#xff0c;哈希&#xff08;hash…

Unity类银河战士恶魔城学习总结(P141 Finalising ToolTip优化UI显示)

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址&#xff1a;https://www.udemy.com/course/2d-rpg-alexdev/ UI部分暂时完结&#xff01;&#xff01;&#xff01; 本章节优化了UI中物品描述的显示效果&#xff0c;技能描述的显示效果 并且可以批…

oracle的静态注册和动态注册

oracle的静态注册和动态注册 静态注册&#xff1a; 静态注册 : 指将实例的相关信息手动告知 listener 侦 听 器 &#xff0c; 可以使用netmgr,netca,oem 以及直接 vi listener.ora 文件来实现静态注册&#xff0c;在动态注册不稳定时使用&#xff0c;特点是&#xff1a;稳定&…

社交电商专业赋能高校教育与产业协同发展:定制开发AI智能名片及2+1链动商城小程序的创新驱动

摘要&#xff1a;本文围绕社交电商有望成为高校常态专业这一趋势展开深入探讨&#xff0c;剖析国家政策认可下其学科发展前景&#xff0c;着重阐述在专业建设进程中面临的师资短缺及实践教学难题。通过引入定制开发AI智能名片与21链动商城小程序&#xff0c;探究如何借助这些新…

数据指标与标签在数据分析中的关系与应用

导读&#xff1a;分享数据指标体系的文章很多&#xff0c;但讲数据标签的文章很少。实际上&#xff0c;标签和指标一样&#xff0c;是数据分析的左膀右臂&#xff0c;两者同样重要。实际上&#xff0c;很多人分析不深入&#xff0c;就是因为缺少对标签的应用。今天系统的讲解下…

使用Electron将vue2项目打包为桌面exe安装包

目录 一、下载electron模板项目 【electron-quick-start】​ 二、打开项目&#xff0c;安装所有依赖 三、在打exe包的时候报错是因为没有&#xff0c;需要检查并安装之后重新打包&#xff1b; 四、经过这么疯狂的一波操作之后&#xff0c;就可以打包出你想要的exe安装包&am…

MySQL基础大全(看这一篇足够!!!)

文章目录 前言一、初识MySQL1.1 数据库基础1.2 数据库技术构成1.2.1 数据库系统1.2.2 SQL语言1.2.3 数据库访问接口 1.3 什么是MySQL 二、数据库的基本操作2.1 数据库创建和删除2.2 数据库存储引擎2.2.1 MySQL存储引擎简介2.2.2 InnoDB存储引擎2.2.3 MyISAM存储引擎2.2.4 存储引…

Linux之NFS共享文件操作

一、注意点 以下操作使用root用户 代理端需要访问服务端的2049、111端口二、nfs下载 # 服务端和代理端都要安装 yum –y install rpcbind yum –y install nfs-utils三、配置共享目录-【服务端】 *修改/etc/exports文件&#xff0c;追加以下内容 /home/app_adm/test ip1(in…

C#学习笔记——窗口停靠控件WeifenLuo.WinFormsUI.Docking使用-腾讯云开发者社区-腾讯云

C#学习笔记——窗口停靠控件WeifenLuo.WinFormsUI.Docking使用-腾讯云开发者社区-腾讯云 C#学习笔记——窗口停靠控件WeifenLuo.WinFormsUI.Docking使用 发布于 2021-06-10 00:10:59 7.1K0 举报 文章被收录于专栏&#xff1a;c#学习笔记 一、介绍 DockPanelSuite是托管在…