关于float和double类型能表示的数据范围和精度分析
2024-09-02 09:08:47
来自教材《计算机组成原理》p16
float:6--7位
double:15--16位
意思就是double类型的数据,你确实能表达出很大的数字,但是其只有15位是精确的。
1、计算机中,因为需要计算电子的质量9*10^(-28)g和太阳的质量2*10^(33)g这样的大数据,需要引入一种新的方式来存取数据。
ps:一开始的方式只有定点数的表示方法,只能存纯小数或则纯整数,范围只有2^n
2、把32位的空间(float)分割成3部分,S、E、M表示符号位、阶码、尾数,分别分配1位、8位、23位
其中阶码代表数值的范围,尾数代表数值的精度。
阶码:8位,不用符号位,因为用了阶码的形式存取,也就是本来要表示-127---127的指数,我把他们同时加上127,那么新的数值就是0---254,这个时候,每次读取完后,真实值就是x = E - 127,基准数base = 2,也就是底数 = 2
尾数:用来存取浮点数,因为任何一个数都能表示成2^e.M的形式,这里就是存取M,所以尾数能表达多少,有效位就是多少
3、小数的标准形式:1.xxxx,
4、二进制运算:111.01011 * 2^4 = 1110101.1,相当于右移了四位
最新文章
- dp 走格子问题
- HDU 4630 No Pain No Game 树状数组+离线操作
- 17B
- iOS开发——多线程篇——GCD
- Win 10 连接公司VPN后不能上Internet外网
- [Angular2 Router] Understand the Angular 2 Base href Requirement
- C++与Lua交互(一)
- KEIL简单实例
- (step6.1.4)hdu 1102(Constructing Roads——最小生成树)
- URL scheme添加以及查找方式
- C# dev GridControl绑定数据不能显示
- java服务器获取客户端ip
- ArcticCore重构-VALIDATE_%
- docker核心概念与配置安装
- gnuradio 使用eclipse 编辑器记录
- nginx反向代理与Real-IP和X-Forwarded-For.txt
- day9-13 linux基础
- day30-模块和包
- DB2和Oracle中Date比较
- CentOS 安装MariaDB