当前位置:网站首页>浮点型数据在内存中存储的表示
浮点型数据在内存中存储的表示
2022-08-03 05:24:00 【langaopeng】
实数在内存中以规范化的浮点数存放,包括数符、阶码、尾数。数的精度取决于尾数的尾数。比如32位机上float型为23位(因为规范化数的数码最高位恒为1,不必存储,实际精度为24位,下面会有详解),double型为52位。
单精度float型存储在内存中的大小为4个字节,即32位。
xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
浮点表示法类似于科学计数法,任一数均可通过改变指数部分,使小数点位置发生移动,如23.45可以写成:2.345*10^1
浮点表示的一般形式为:R=M*2^e (R:Real M:Mantissa尾数 e:exponent阶码)
把上面float的二进制可分成三部分:
x
数符(1b)
double型的浮点数分别是:数符(1b)、阶码(8b)、尾数(52b)
数符sign:real的正负号 "+":0 "-":1
阶码e:这里二进制其实是移码E(0~255)的表示,e=E-127(double型中e=E-1023) e为正值说明这个浮点数向左移动了e位,e为负值说明这个浮点数向右移动了e位。127=2^7-1 1023=2^10-1
尾数M:有效数字位,这里是有效数字位的部分二进制码,为什么说部分呢?仔细看通上下文就可以知道了。
例1:float型浮点数125.5转化成32位二进制浮点数
125.5的二进制码为1111101.1,写成二进制的科学计数为:1.111101*2^6(因为科学计数法“整数”部分大于1,在二进制中,“整数”部分只能恒为1)即向左移6位,则e=6,则E=e+127=133,而E的二进制码为10000101,而1.111101把“整数”部分去除1之后为111101,之后补0,共23b,形成了阶码。
所以125.5的32位二进制浮点数为
0 10000101 11110100000000000000000
例2:float型浮点数0.5转化成32位二进制浮点数
0.5的二进制码为0.1,写成二进制的科学计数为:1.0*2^(-1)即向右移1位,则e=-1,则E=e+127=126,而E的二进制码为01111110,而1.0把“整数”部分去除1之后为0,之后补0,形成了阶码。
所以0.5的32位二进制浮点数为
0 01111110 00000000000000000000000
double型浮点数类似。
例3:32位二进制浮点数为0 10000010 00010000000000000000000转化成十进制数浮点数
题中已给我们分了三部分,数符部分、阶码部分、尾数部分。
数符部分为0,则代表此数为整数;阶码部分为10000010,则E=130,则e=E-127=3,则说明其向左移了3位,0001加上“整数”部分的1之后,为1.0001。则原二进制数为1000.1=十进制8.5,或R=1.0001*2^3=8.5
边栏推荐
- 磁盘空间管理
- 深度学习理论课程第四、五章总结
- Qlik Sense 判空详解(IsNull)
- 自监督论文阅读笔记 TASK-RELATED SELF-SUPERVISED LEARNING FOR REMOTE SENSING IMAGE CHANGE DETECTION
- A.1#【内存管理】——1.1.1 node:struct pglist_data
- Oracle count(1)、count(*)、count(列) 区别详解
- Ansible installation and deployment detailed process, basic operation of configuration inventory
- Browser multi-threaded off-screen rendering, compression and packaging scheme
- 【Yarn】yarn常用命令 查看日志和Kill任务
- new / malloc / delete / free之间的区别
猜你喜欢

自监督论文阅读笔记 DetCo: Unsupervised Contrastive Learning for Object Detection

自监督论文阅读笔记FIAD net: a Fast SAR ship detection network based on feature integration attention and self

MySQL 下载和安装详解

Oracle 密码策略详解

自监督论文阅读笔记 Self-Supervised Visual Representation Learning with Semantic Grouping

网络间通信

二叉树常见的问题和解决思路

Router-view

交叉熵(第六周)

嵌入式实验二注意点
随机推荐
Oracle null 有哪些注意事项【面试题】
【 Nmap and Metasploit common commands 】
梯度下降、反向传播
opencv
深度学习理论课程第四、五章总结
深度学习理论课程第八、九、十章总结
边缘辅助无人机网络的分层联邦学习
设备树解析源码分析<devicetree>-1.基础结构
当奈飞的NFT忘记了web2的业务安全
观看华为AI技术领域课程--深度学习前三章总结
自监督论文阅读笔记 SimCLRV2 Big Self-Supervised Models are Strong Semi-Supervised Learners
Oracle 注释详解(--、/**/、rem)
自监督论文阅读笔记 Self-supervised Learning in Remote Sensing: A Review
memblock
深度学习基本概念
Oracle 日历表详解(含节假日)
中国水产养殖行业市场投资分析及未来风险预测报告2022~2028年
中国人造金刚石行业投资战略规划及发展前景预测报告2022~2028年
中国生物反应器行业发展现状及前景规划分析报告报告2022~2028年
Sentinel初次使用Demo测试