首页 > 其他分享 >浮点数在电脑中如何存储的

浮点数在电脑中如何存储的

时间:2024-09-02 14:19:46浏览次数:3  
标签:存储 有效数字 浮点数 电脑 计数法 二进制 127 1.011

根据国际标准IEEE(电气和电子工程协会)754,任意一个二进制浮点数V可以表示成下面的形式

(-1)^S*M*2^E

-1^S表示符号位,当s=0,V表示正数,当s=1,V为负数

M表示有效数字,大于等于1,小于2

2^E表示指数位

什么意思呢?

例如:5.5

5在二进制中是101,而后面的.5是表示1,因为小数点后面的第一位是从2的负一次方开始算的,所以是101.1

按照科学计数法就表示成1.011*2^2

V=5.5

=1.011*2^2

=(-1)^0*1.011*2^2

S=0

M=1.011(换成科学计算法后的二进制数)

E=2   (这里是换算成科学计数法后原本的数向前移动了几位)

在32位的机器float的存储

s E E E E E E E E M                                            

s(1bit) E(8bit)M(23bit)

在64位的机器float的存储

S E E E E E E E E E E E M                                                                                                      

s(1bit) E(11bit)M(52bit)

M有特定的规定

取值范围是1<=M<2, M也可以写成1.XXXX的形式,其中XXXX表示的是小数

在计算机中保持M的值的时候,默认第一位都是1,因此是可以舍弃的,只保存小数点后面的数,当读取的时候,在加回原来的1就可以了,这样留给M的空间就有23/52位

E为无符号整数,如果是8bit取值范围为0-255,11bit取值范围为0-2047,但是在科学计数法中E是可以出现负数的,在存入内存中E的真实值必须加上一个中间数,对于8位的E,中间值数127,对于11位的E中间值的1023

例如:2^10中E是10,在32位浮点数时,保存的是10+127=137,转换二进制是10001001

 

指数E在内存中取出分为3种情况

 E不全为0或不全为1

指数E减去127/1023得到真实值,再加上有效数字M前加上第一位的1

E全为1

有效数字M全为0,表示浮点数表示的数字非常大

E全为0

浮点数的指数E等于1-127/1-1023即为真实值,有效数字M不需要加上第一位的1

 

标签:存储,有效数字,浮点数,电脑,计数法,二进制,127,1.011
From: https://www.cnblogs.com/hzy7/p/18392608

相关文章

  • 电脑删掉的照片怎么恢复?5个秘籍来助你,寻回美照不忧愁
    有时因为疏忽或意外,珍贵的照片可能会从电脑中消失。面对这种情况,我们是否束手无策?电脑删掉的照片怎么恢复?本文将为你揭示5个秘籍,助你找回那些失落的美照,让你的回忆不再忧愁。秘籍一:进入回收站恢复删掉的照片每当我们发现电脑中的照片不翼而飞,心中总会涌起一阵莫名的恐慌......
  • 20240905_000339 mysql 存储过程 用户自定义变量
    自定义变量的特点一个@符号定义自定变量打印自定变量另一种定义方式查询赋值......
  • 20240905_010339 mysql 存储过程 局部变量
    ......
  • 一维数组的使用和存储
    数组下标C语言中规定数组是有下标的,从0开始,假设数组有n个元素,则最后一个元素的下标为n-1。下标相当于数组元素的编号。在C语言中数组的访问提供了一个操作符[],叫作下标引用操作符。数组元素的打印与输入#include<stdio.h>intmain(){intarr[10]={1,2,3,4,5,6......
  • 打破平台限制,使智能手机和平板电脑上无缝运行Windows x86/x64架构的软件和游戏的一款
    大家好,今天给大家分享一款专为Android设备设计的模拟器应用Winlator。其核心功能是能够在基于ARM架构的智能手机和平板电脑上无缝运行Windowsx86/x64架构的软件和游戏。Winlator是一款Android应用程序,它允许用户使用Wine和Box86/Box64在Android设备上运行Windows(x86_64)应用......
  • 容器存储接口--CSI
    目录一、背景二、CSI是什么三、CSI系统架构1、CSI如何与k8s组件相互通信2、CSI由哪些组件组成3、CSI的工作原理4、k8s存储中涉及的组件及其作用4.1、SidecarContainers4.1.1、external-attacher4.1.2、external-provisioner4.1.3、external-resizer4.1.4、external-snaps......
  • 云存储抽象层-FluentStorage
    FluentStorage是一个.NET云存储抽象层,支持多种云服务提供商。它提供了一个统一的API来处理不同云服务提供商的Blob存储(如AWSS3,GCP,FTP,SFTP,AzureBlob/File/EventHub/DataLake)和消息传递(如AWSSQS,AzureQueue/ServiceBus)。这个库完全用C#编写,支持.NET5+和.NETStanda......
  • Unclutter - 苹果电脑(Mac)桌面文件笔记剪贴板管理工具
    刚收拾好的电脑桌面马上又堆满了杂七杂八的文件?刚随手一记的笔记,回头却找不到了?马上来认识一下Unclutter,一款藏在Mac系统顶部的文件、笔记、剪贴板管理器。安装后,用户只需要将鼠标指针移动到屏幕顶部,向下滚动,Unclutter窗口就会滑落显现,无需给电脑桌面「添乱」。有时候......
  • ubuntu重新分配根目录存储空间-将根目录空间缩小腾出给别的位置
    我有个1t的固态,上面装了双系统,分了四分之一给windows,四分之三给ubuntu,现在出了黑神话悟空,我想玩一玩,黑神话悟空需要130g的存储,但是我的windows空间只剩50g,而且我又不想使用机械硬盘,毕竟太慢了。于是,我想把我的ubuntu再分出四分之一给windows,相当于两个系统各占一半的空间。经过......
  • 电脑的系统更新在哪里查看,教你怎么打开电脑系统的更新
    在Windows系统中,查看和打开电脑更新的位置相对固定,主要通过“设置”应用来完成。以下是详细的步骤说明:一、查看系统更新通过“设置”查看:点击屏幕左下角的“开始”按钮(Windows徽标)。在弹出的菜单中,选择“设置”图标(齿轮形状)。在“设置”窗口中,选择“更新和安全”。在左侧菜......