浮点型数据在计算机中存储
计算机用二进制来表示数字,浮点数也是如此:
首先了解如何用二进制表示小数(也就是如何把十进制小数转化为二进制表示):
举一个简单例子,十进制小数 10.625
1)首先转换整数部分:10 = 1010b
2)小数部分0.625 = 0.101b
(用“乘2取整法”:0.625*2=1.25,得第一位为1,0.25*2=0.5,得第二位为0,0.5*2=1, 得第三位为1,余下小数部分为零,就可以结束了)
3)于是得到 10.625=1010.101b
换个表示方式更加深入理解:
1*(10^1)+0*(10^0)+6*(10^-1)+2*(10^-2)+5*(10^-3) =
1*(2^3) + 0*(2^2) + 1*(2^1) + 0*(2^0) + 1*(2^-1) + 0*(2^-2) + 1*(2^-3)
4) 类似十进制可以用指数形式表示:
10.625=10625*(10^-3)
所得的二进制小数也可以这样指数形式表述:
1010.101b=1010101 * (2^-3)
也就是用有效数字a和指数e来表述: a * (2^e)
用一个32bit的空间(bit0~bit31)来存储这么一个浮点数,如此分配存储空间:
bit0 ~ bit22 共23bit,用来表示有效数字部分,也就是a,本例中a=1010101
bit23 - bit30 共8个bit,用来表是指数,也就是e,范围从-128到127,实际数据中的指数是原始指数加上127得到的,如果超过了127,则从-128开始计,所以这里e=-3表示为124
bit31 为符号位,1表示负数,这里应该为0
把上述结果填入32bit的存储器,就是计算机表示小数10.625的形式。
注意这个例子的特殊性:它的小数部分正好可以用有限长度的2进制小数表示,因此,而且整个有效数字部分a的总长度小于23,因此它精确的表示了10.625,但是有的情况下,有效数字部分的长度可能超过23,甚至是无限多的,那时候就只好把后面的位数截掉了,那样表示的结果就只是一个近似值而非精确值;显然,存储长度越长,精度就越高,比如双精度浮点数长度为64位,1位符号位,11位指数位,52位有效数字。
相关知识
Kafka数据安全性、运行原理、存储
6 字符型数据及其处理
共筑数据存储产业,推进数字经济繁荣
在 Windows 应用中部署 PyTorch 数据分析模型
一盘磁带=15TB?安全稳定完胜硬盘,或成数据存储最好选择
便携式光照测定仪,光照度记录仪,光照度计
数据挖掘综合
查询数据中是否存在某名称的存储过程
【蓝蓝高频面试之数据库系列】第一期数据库基础20题
第十击
网址: 浮点型数据在计算机中存储 https://www.huajiangbk.com/newsview1095234.html
上一篇: 计算存款利息,本题目要求计算存款 |
下一篇: DB2 不指定Schema调用存 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039