浮点数的理解
来源:互联网 发布:java程序员工作业绩 编辑:程序博客网 时间:2024/06/05 21:47
1、浮点数的表示
IEEE-754
目前绝大多数语言都支持该文档,c语言里面的float,double就为该文档的32位和64位浮点。
(1)单精度浮点值
float类型的为32位存储方式,从高位到低位的存储分别为31位是数符位,30-23位是阶码位E,在存储时真实阶码e要加上7F(H)为E,后面的22-0位是尾数M,规格化表示时默认1.M,在浮点数小于规格化表示的最小绝对值数E等于-126时,转变为非规格化表示,尾数表示0.M,采用渐近式下溢。32位通常最大3.4E38,最小1.4E-45.
(2)双精度浮点值
double类型为64位存储方式,从高位到低位的存储方式分别为63位是数符位,62-52位是阶码位E,存储时,真实阶码e要加上3FF(H)得到E,后面51-0位的52位是尾数位,同样分别规格化和非规格化表示,同上。
2、浮点数规定
(1)0的规定
以32位为例,当E和M都为0时,表示浮点数的0。由于有数符的区别,所有有+0和-0的区别,但是IEEE754规定,它们两者相等。
(2)无穷大
E=255,即指数域全1,M为0,此时表示无穷,根据数符位,分为正无穷和负无穷。除NAN(not a number)外,其他任何数除以0都是无穷。
(3)NAN(bot a number)
E=255,即指数域全1,M非0,此时表示NAN,用于处理不为无穷大的错误。
3、浮点数与实数的区别
浮点数在计算机中是离散分布和存储的,其数的个数是有限的,两数之差是确定的值,如果两个不等的浮点数的差值小于最小的浮点绝对值,那么系统将该差值视为0。
实数是连续分布的,数的个数是无限的,两数之差不会出现归零想象。
实数和浮点数之间的转换,由于浮点数精度有限,在转换的过程中可能出现精度丢失的情况。
- 浮点数的理解
- 浮点数的理解
- 理解浮点数的构成
- 关于浮点数和IEEE754的理解
- 关于浮点数的误差理解
- 浮点数理解梳理
- 深入理解浮点数
- 浮点数的理解和BigDecimal的使用
- 浮点数储存理解误区
- 对java中的浮点数表示的理解
- 关于浮点数和IEEE754标准的一点理解
- 《Effective JavaScript》- 1.2 理解JavaScript的浮点数
- 【深入理解计算机系统】【浮点数的表示范围】
- 《Effective JavaScript》读书笔记——理解JavaScript的浮点数
- 浮点数在内存中的格式(理解浮点到定点的转化)
- 浮点数的比较
- 浮点数的比较
- 浮点数的表示
- mycat安装
- Django:使用Paginator进行自动分页
- linux学习网站
- 【JAVA SE】15.封装+包
- VDMA IP的GUI配置介绍【Xilinx-VDMA模块学习】
- 浮点数的理解
- windows-pipe-进程间通信1
- 安装JDK,配置环境及安装eclipse
- 函数功能
- python模拟登录人人网
- 1107_搬水果
- Robotframework 入门教程(十)
- 打开进程_申请内存_读写内存
- 如何对火狐浏览器进行编码设置