当前位置:网站首页>为什么4个字节的float要比8个字节的long大呢?
为什么4个字节的float要比8个字节的long大呢?
2022-08-02 05:07:00 【我读春秋的。】
为什么float占4个字节,long占8个字节,float却比long要大呢?
我们都知道,float类型的范围是:一3.403E38~3.403E38。而long类型的范围是:-2^63~2^63-1(大概是9*10^18)。
那到底是为什么会产生这样的结果呢?主要是因为整数与小数的底层存储有点不同。
long型占用8个字节的存储空间,即64bit,最左边一位是符号位,0表示正,1表示负,其余63位存储数值,所以long型可以表示的数值范围为-2^63到2^63-1,这个很好理解。
从上图可以看出float由符号位、指数位、和尾数部分组成。float最左边一位表示符号位,中间8位绿色部分表示指数位,剩下23位表示尾数。由于指数位部分有符号,指数部分的10000000和整型不同,它表示的值是128,所以指数位的取值范围是-127到128,因此我们可以得出float的取值范围大约是-2^128到2^128,这个近似值也可以表示为为-3.4E到3.4E。据此可以得出图中的符号位为0是正数,指数部分为正值124,所以,float是要远远大于long的。
边栏推荐
猜你喜欢
Mycat2.0搭建教程
MYSQL 唯一约束
Android studio connects to MySQL and completes simple login and registration functions
Mysql存储json格式数据
AMQP协议详解
25K测试老鸟6年经验的面试心得,四种公司、四种问题…
Packaging and deployment of go projects
"Digital reconstruction of the system, getting the CEO is the first step"
区块元素、内联元素(<div>元素、span元素)
本周大新闻|苹果MR已进行Pre-EVT测试,Quest 2涨价100美元
随机推荐
关于web应用的目录结构
MYSQL unique constraint
Go语言之interface详解
Detailed explanation of mysql stored procedure
JDBC revisited
interrupt()、interrupted()和isInterrupted()你真的懂了吗
编译失败:HBuilderX 安装目录不能包括 ( 等特殊字符 (HBuilderX,uni-app报错)
[PSQL] 窗口函数、GROUPING运算符
MySQL 游标
对node工程进行压力测试与性能分析
MySQL multi-table association one-to-many query to get the latest data
classSR论文阅读笔记
coredns介绍
Android studio connects to MySQL and completes simple login and registration functions
Navicat cannot connect to mysql super detailed processing method
MySQL 灵魂 16 问,你能撑到第几问?
apisix-Getting Started
mysql 8.0.28版本安装配置方法图文教程
MySQL 5.7详细下载安装配置教程
【C语言】LeetCode26.删除有序数组中的重复项&&LeetCode88.合并两个有序数组