浮点数在计算机中存储方式---IEEE754格式存储
来源:互联网 发布:java开发工具 编辑:程序博客网 时间:2024/06/08 18:59
简单总结:
单精度浮点数: 1位符号位 8位阶码位 23位尾数
双精度浮点数: 1位符号位 11位阶码位 52位尾数
单精度float型存储在内存中的大小为4个字节,即32位。
x xxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx
数符(1b) 阶码(8b) 尾数(23b)
double型存储在内存中的大小为8个字节,即64位。
double型的浮点数分别是:数符(1b)、阶码(11b)、尾数(52b)
例1:float型浮点数125.5转化成32位二进制浮点数
125.5的二进制码为1111101.1,写成二进制的科学计数为:1.111101*2^6(因为科学计数法“整数”部分大于1,在二进制中,“整数”部分只能恒为1)即向左移6位,则e=6,则E=e+127=133,而E的二进制码为10000101,而1.111101把“整数”部分去除1之后为111101,之后补0,共23b,形成了阶码。
所以125.5的32位二进制浮点数为:
0 10000101 11110110000000000000000
例2:float型浮点数0.5转化成32位二进制浮点数
0.5的二进制码为0.1,写成二进制的科学计数为:1.0*2^(-1)即向右移1位,则e=-1,则E=e+127=126,而E的二进制码为01111110,而1.0把“整数”部分去除1之后为0,之后补0,形成了阶码。
所以0.5的32位二进制浮点数为
0 01111110 00000000000000000000000
double型浮点数类似。
例3:32位二进制浮点数为0 10000010 00010000000000000000000转化成十进制数浮点数
题中已给我们分了三部分,数符部分、阶码部分、尾数部分。
数符部分为0,则代表此数为正数;阶码部分为10000010,则E=130,则e=E-127=3,则说明其向左移了3位,0001加上“整数”部分的1之后,为1.0001。则原二进制数为1000.1=十进制8.5,或R=1.0001*2^3=8.5
什么是IEEE754格式存储
IEEE 754 标准是IEEE浮点数算术标准(IEEE Standard for Floating-Point Arithmetic)的标准编号 ,等同于国际标准ISO/IEC/IEEE 60559 。该标准由美国电气电子工程师学会(IEEE)计算机学会旗下的微处理器标准委员会(Microprocessor Standards Committee, MSC)发布。
1简介
IEEE浮点数算术标准(IEEE 754)是最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用。这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denormal number),一些特殊数值(无穷与非数值(NaN)),以及这些数值的“浮点数运算子”;它也指明了四种数值修约规则和五种例外状况(包括例外发生的时机与处理方式)。IEEE 754规定了四种表示浮点数值的方式:单精确度(32位)、双精确度(64位)、延伸单精确度(43位以上,很少使用)与延伸双精确度(79位元以上,通常以80位元实做)。只有32位模式有强制要求,其他都是选择性的。大部分编程语言都有提供IEEE格式与算术,但有些将其列为非必要的。例如,IEEE 754问世之前就有的C语言。IEEE754标准包括IEEE算术,但不算作强制要求(C语言的float通常是指IEEE单精确度,而double是指双精确度)。
该标准的全称为IEEE二进制浮点数算术标准(ANSI/IEEE Std 754-1985),又称IEC 60559:1989,微处理器系统的二进制浮点数算术(本来的编号是IEC 559:1989)。后来还有“与基数无关的浮点数”的“IEEE 854-1987标准”,有规定基数为2跟10的状况。
2浮点数剖析
整体呈现
指数偏差
范例
32位单精度
64位双精度
3数位
S为符号位,Exp为指数位,Fraction为有效数位。 指数部分即使用所谓的偏正值形式表示,实际值为表示值与一个固定值(32位的情况是127)的和。采用这种方式表示的目的是简化比较。因为,指数的值可能为正也可能为负,如果采用补码表示的话,全体符号位S和Exp自身的符号位将导致不能简单的进行大小比较。正因为如此,指数部分通常采用一个无符号的正数值存储。单精度的指数部分是-126~+127加上127 ,指数值的大小从1~254(0和255是特殊值)。浮点小数计算时,指数值减去偏正值将是实际的指数大小。- 浮点数在计算机中存储方式---IEEE754格式存储
- 浮点数在计算机中存储方式
- 浮点数在计算机中存储方式
- 浮点数在计算机中存储方式
- 浮点数在计算机中存储方式
- 浮点数在计算机中存储方式
- 浮点数在计算机中存储方式
- 浮点数在计算机中存储方式
- 浮点数在计算机中存储方式
- 浮点数在计算机中存储方式
- 浮点数在计算机中存储方式
- 浮点数在计算机中存储方式
- 浮点数在计算机中存储方式
- 浮点数在计算机中存储方式
- 浮点数在计算机中存储方式
- 浮点数在计算机中存储方式
- 浮点数在计算机中存储方式
- 浮点数在计算机中存储方式
- 传递模板类的成员函数指针及static成员函数
- 5分钟搞定内存对齐『转』
- 面向对象之访问修饰符
- 五个脚本技巧 (Five Scripting Skills Every Security Technician Should Have)
- 【open】fans-rt 任务销毁的对象释放流程
- 浮点数在计算机中存储方式---IEEE754格式存储
- 【close】任务局部变量相关功能
- sizeof,终极无惑『转』
- PAT乙级 1006. 换个格式输出整数
- Simplify Path
- 编译x86架构的openwrt系统,让笔记本从u盘启动openwrt
- MySql source 命令注意点
- Course Schedule
- mybatis注解方式懒加载失效分析