float型变量能存储的最大正值和最小正值

2024-01-23 23:08

本文主要是介绍float型变量能存储的最大正值和最小正值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天写一写我对float变量的理解,我也是学习了网上的一些作者的看法,现在用最白的白话文记录下我对float变量存储格式怎么存储最大值和最小正值的理解。

首先上面的单精度格式大家都知道,IEEE(Instituteof Electrical and Electronics Engineers (IEEE)指定的格式,也许是因为这样设计更加科学吧。

float型变量存储格式被安排32个bits(1个bit就是一个由并联和串联的电路组合,可以在command指令下让其通电(0)还是断电(1))。其中如图所示,31位被安排了符号,指数位安排了8个bits(其中30号位也是符号位,是指数的符号位),尾数位安排了23个bits

随机选一个十进制数23.125,转为二进制数为:10111.001

换算成科学计数法10111.001=1.0111001 * 2^4

其中标红部分(0111001)就是将要保存到float格式中的尾数位(那么二进制整数位1为什么不用保存呢,是因为这是个定值,保存在隐藏位了)

指数4就是将要保存到float格式中的指数位,4是个十进制数,保存到计算机中需要换算成二进制,即100,但是这样还不能直接存储到指数位置,这是因为指数位采用移位存储技术,意思就是,8bits的空间可以本可以存储256个十进制正值,但是因为由于有负指数的需求,所以IEEE指定127到0计为负,127 到 255为正,且255和0表示无穷值,不能输出!所以正指数最大值只有127是可以输出实际值,负指数只有-126是可以输出实际值的。

当指数为+4时,指数位置需要表示的十进制数就是127+4=131,换算成二进制为10000011才能被计算机认为是4!

那么,十进制数23.125的储存到float格式中就是

0

1

0

0

0

0

0

1

1

0

1

1

1

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

那么,我们反过来算float格式中能存储的最大数值,当指数位最大值为127,尾数位为.11111111111111111111111时,

max=1.11111111111111111111111*2^1273.4*10^38

当指数位最大值为-126,尾数位为.0时,

min=1*2^-1261.175*10^-38

这篇关于float型变量能存储的最大正值和最小正值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/637816

相关文章

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

一文全面详解Python变量作用域

《一文全面详解Python变量作用域》变量作用域是Python中非常重要的概念,它决定了在哪里可以访问变量,下面我将用通俗易懂的方式,结合代码示例和图表,带你全面了解Python变量作用域,需要的朋友... 目录一、什么是变量作用域?二、python的四种作用域作用域查找顺序图示三、各作用域详解1. 局部作

MySQL 存储引擎 MyISAM详解(最新推荐)

《MySQL存储引擎MyISAM详解(最新推荐)》使用MyISAM存储引擎的表占用空间很小,但是由于使用表级锁定,所以限制了读/写操作的性能,通常用于中小型的Web应用和数据仓库配置中的只读或主要... 目录mysql 5.5 之前默认的存储引擎️‍一、MyISAM 存储引擎的特性️‍二、MyISAM 的主

Linux lvm实例之如何创建一个专用于MySQL数据存储的LVM卷组

《Linuxlvm实例之如何创建一个专用于MySQL数据存储的LVM卷组》:本文主要介绍使用Linux创建一个专用于MySQL数据存储的LVM卷组的实例,具有很好的参考价值,希望对大家有所帮助,... 目录在Centos 7上创建卷China编程组并配置mysql数据目录1. 检查现有磁盘2. 创建物理卷3. 创

golang float和科学计数法转字符串的实现方式

《golangfloat和科学计数法转字符串的实现方式》:本文主要介绍golangfloat和科学计数法转字符串的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望... 目录golang float和科学计数法转字符串需要对float转字符串做处理总结golang float

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

SpringBoot项目中Redis存储Session对象序列化处理

《SpringBoot项目中Redis存储Session对象序列化处理》在SpringBoot项目中使用Redis存储Session时,对象的序列化和反序列化是关键步骤,下面我们就来讲讲如何在Spri... 目录一、为什么需要序列化处理二、Spring Boot 集成 Redis 存储 Session2.1

基于MongoDB实现文件的分布式存储

《基于MongoDB实现文件的分布式存储》分布式文件存储的方案有很多,今天分享一个基于mongodb数据库来实现文件的存储,mongodb支持分布式部署,以此来实现文件的分布式存储,需要的朋友可以参考... 目录一、引言二、GridFS 原理剖析三、Spring Boot 集成 GridFS3.1 添加依赖

java变量内存中存储的使用方式

《java变量内存中存储的使用方式》:本文主要介绍java变量内存中存储的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍2、变量的定义3、 变量的类型4、 变量的作用域5、 内存中的存储方式总结1、介绍在 Java 中,变量是用于存储程序中数据

SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法

《SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法》在SQLyog中执行存储过程时出现的前置缩进问题,实际上反映了SQLyog对SQL语句解析的一个特殊行为,本文给大家介绍了详... 目录问题根源正确写法示例永久解决方案为什么命令行不受影响?最佳实践建议问题根源SQLyog的语句分