博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
float在计算机的存储方式
阅读量:3700 次
发布时间:2019-05-21

本文共 612 字,大约阅读时间需要 2 分钟。

1、float类型数字在计算机中用4个字节(32位)存储。

遵循IEEE-754格式标准:

一个浮点数由3部分组成:符号位s(1位)和、指数e(8位)、底数m(23位)

 

2、格式

SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM

S:符号位

E:指数,十进制指数加上127后的值得二进制数据
M:底数

 

3、符号位

指底数的符号,可正可负。

 

4、指数

占用8bit的二进制数,可表示数值范围为0-255。

但是指数可正可负,所以,IEEE规定,此处算出的次方必须减去127才是真正的指数。

所以,float类型的指数可从-126到128

 

5、底数

实际是占用24bit的一个值,但是最高位始终为1,所以,最高位省去不存储,在存储中占23bit

科学计数法。

 

6、举例:

17.625在内存中的存储

首先要把17.625换算成二进制:10001.101

在将10001.101右移,直到小数点前只剩1位:

1.0001101 * 2^4  因为右移动了四位

底数:因为小数点前必为1,所以IEEE规定只记录小数点后的就好。所以,此处的底数为:0001101

指数:实际为4,必须加上127(转出的时候,减去127),所以为131。也就是10000011
符号:整数,所以是0

综上所述,17.625在内存中的存储格式是:
01000001 10001101 00000000 00000000

分类:

转载地址:http://xdscn.baihongyu.com/

你可能感兴趣的文章
vue 全屏背景图片 别看其他的了看我这篇就解决了!
查看>>
GET和POST两种基本请求方法的区别
查看>>
Vue+SpringBoot+Mybatis-plus前后端交互实现登录功能(踩了好多坑!)
查看>>
git 上传管理项目执行命令
查看>>
常见编程命名缩写
查看>>
警示:SpringBoot后端:自己写的方法没有错啊 为什么总是报错!!java.lang.NullPointerException: null
查看>>
查询数据库中的数据字段不显示 或者 报Unknown column ‘xxx‘ in ‘field list‘错解决办法(踩坑)
查看>>
使用Mybatis-Plus时,注入mapper提示Could not autowire. No beans of ‘xxxMapper‘ type found.
查看>>
拦截器 路径不生效踩坑
查看>>
mysql 免安装版 下载 配置与完美卸载 (转载)
查看>>
ubuntu18.04安装zabbix-proxy实现自动注册
查看>>
ubuntu18.04 部署zabbix
查看>>
网络映射frp
查看>>
区块链部署
查看>>
grafana忘记登陆密码
查看>>
PyCharm安装requests模块
查看>>
Ansible常用模块介绍
查看>>
ubuntu18.04部署MongoDB
查看>>
Web页面执行shell命令
查看>>
Kubernetes(一) 跟着官方文档从零搭建K8S
查看>>