当前位置:网站首页>为什么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的。
边栏推荐
- Packaging and deployment of go projects
- Android studio连接MySQL并完成简单的登录注册功能
- 软件测试的需求人才越来越多,为什么大家还是不太愿意走软件测试的道路?
- Detailed installation and configuration of golang environment
- golang泛型
- Mysql实现乐观锁
- MySQL 8.0.29 set and modify the default password
- Detailed explanation of the software testing process (mind map) of the first-tier manufacturers
- MySQL 多表关联一对多查询实现取最新一条数据
- 整合ssm(一)
猜你喜欢
随机推荐
Navicat报错:1045 -拒绝访问用户[email protected](使用passwordYES)
Mysql实现乐观锁
Redis集群模式
一线大厂软件测试流程(思维导图)详解
swinIR论文阅读笔记
goroutine (coroutine) in go language
大屏UI设计-看这一篇就够了
区块元素、内联元素(<div>元素、span元素)
SQL数据表增加列
canvas 像素操作(图片像素操作)
mysql 存储过程详解
MySQL 灵魂 16 问,你能撑到第几问?
The company does not pay attention to software testing, and the new Ali P8 has written a test case writing specification for us
【C语言】LeetCode26.删除有序数组中的重复项&&LeetCode88.合并两个有序数组
51单片机外设篇:点阵式LCD
MySQL夺命10问,你能坚持到第几问?
How much does a test environment cost? Start with cost and efficiency
mysql 查询表 所有字段
Mysql常用命令大全
ELK log analysis system









