单双精度浮点数的IEEE标准格式
来源:互联网 发布:淘宝什么时候打折最多 编辑:程序博客网 时间:2024/05/03 12:57
目前大多数高级语言(包括C)都按照IEEE-754标准来规定浮点数的存储格式,IEEE754规定,单精度浮点数用4字节存储,双精度浮点数用8字节存储,分为三个部分:符号位、阶和尾数。阶即指数,尾数即有效小数位数。单精度格式阶占8位,尾数占24位,符号位1位,双精度则为11为阶,53位尾数和1位符号位,如下图所示:
单精度浮点数存储格式
31 | 30 23 | 22 0
符号位1bit 阶数8bits 尾数23bits(规格化后可以表示24bits)
63 | 62 52 | 51 0
符号位1bit 阶数11bits 尾数52bits(规格化后可以表示53bits)
细心的人会发现,单双精度各部分所占字节数量比实际存储格式都了一位,的确是这样,事实是,尾数部分包括了一位隐藏位,允许只存储23位就可以表示24位尾数,默认的1位是规格化浮点数的第一位,当规格化一个浮点数时,总是调整它使其值大于等于1而小于2,亦即个位总是为1。例如1100B,对其规格化的结果为1.1乘以2的三次方,但个位1并不存储在23位尾数部分内,这个1是默认位。
阶以移码的形式存储。对于单精度浮点数,偏移量为127(7FH),而双精度的偏移量为1023(3FFH)。存储浮点数的阶码之前,偏移量要先加到阶码上。前面例子中,阶为2的三次方,在单精度浮点数中,移码后的结果为127+3即130(82H),双精度为1026(402H)。
浮点数有两个例外。数0.0存储为全零。无限大数的阶码存储为全1,尾数部分全零。符号位指示正无穷或者负无穷。
下面举几个例子:
所有字节在内存中的排列顺序,intel的cpu按little endian顺序,motorola的cpu按big endian顺序排列。
- 单双精度浮点数的IEEE标准格式
- 单双精度浮点数的IEEE标准格式
- 单双精度浮点数的IEEE标准格式
- 四极管:单双精度浮点数的IEEE标准格式
- 单双精度浮点数的IEEE标准格式
- 浮点数标准(单精度和双精度)
- IEEE 754 的浮点数格式标准(一)
- 浮点数(单精度、双精度数)的有效位
- 整数、单精度浮点数和双精度浮点数在计算机中的存储格式
- IEEE 浮点数格式
- 单精度的浮点数的精度
- 单双精度浮点数
- 根据 IEEE 754 浮点“双精度格式”位布局,返回指定浮点值的表示形式
- 单精度与双精度浮点数
- IEEE浮点数的存放格式
- IEEE制定的浮点数格式
- IEEE浮点数的存放格式(转)
- 单精度浮点数和双精度浮点数
- 从文档中抽取文本,实现 Word, Excel, PowerPoint 文件的全文搜索
- 学习linux的内存管理(二)
- 热烈庆祝火箭队突破季后赛首轮!
- 全球首次用实验证明电脑有IQ
- GNU Screen -- MITBBS Linux版镇版之宝
- 单双精度浮点数的IEEE标准格式
- MySQL数据库C API(2)
- SQL Server 2005安装图解
- 触发器语法
- 郁闷
- Java中四种XML解析技术
- Computer Science Conference Ranking(zz)
- 抛开这所有的扯淡
- 转杨毅:火箭——自助者天助