Double型数据的存储方式和计算方法
2013-07-15 18:16
295 查看
Double型数据的存储方式是什么?
目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。这种结构是一种科学计数法,用符号、指数和尾数来表示,底数定为2——即把一个浮点数表示为尾数乘以2的指数次方再添上符号。下面是具体的规格:
符号位
阶码 尾数
长度
float 1 8 23 32
double 1 11 52 64
这里的阶码是无符号的,但是实际上阶码是有符号的,所以要把实际的指数加2^7-1或2^10-1。例如2的double型阶码就是100
0000 0000。
尾数是把数据用科学计算法表示,并且小数点前只有一位,存时把小数点前的1去掉。
例如3的二进制是1.1*2^1,所以,double浮点数就是0x4008
0000 0000 0000。
而有的小数的二进制数是无穷的,这就是浮点数的精度。
5.3的浮点数:
5是101,0.3是0.010011001100110011001100110011001100110011…
整体就是1.010100110011001100110011001100110011…*2^2,
故浮点数为4015 33333333 3333。
目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。这种结构是一种科学计数法,用符号、指数和尾数来表示,底数定为2——即把一个浮点数表示为尾数乘以2的指数次方再添上符号。下面是具体的规格:
符号位
阶码 尾数
长度
float 1 8 23 32
double 1 11 52 64
这里的阶码是无符号的,但是实际上阶码是有符号的,所以要把实际的指数加2^7-1或2^10-1。例如2的double型阶码就是100
0000 0000。
尾数是把数据用科学计算法表示,并且小数点前只有一位,存时把小数点前的1去掉。
例如3的二进制是1.1*2^1,所以,double浮点数就是0x4008
0000 0000 0000。
而有的小数的二进制数是无穷的,这就是浮点数的精度。
5.3的浮点数:
5是101,0.3是0.010011001100110011001100110011001100110011…
整体就是1.010100110011001100110011001100110011…*2^2,
故浮点数为4015 33333333 3333。
相关文章推荐
- numpy中以文本的方式存储以及读取数据方法
- C语言 float和double型数据在内存中的存储方式
- float型和double型数据的存储方式
- 转帖:float型和double型数据的存储方式
- 转帖:float型和double型数据的存储方式
- Android数据的几种存储方式和方法
- opengl中的Floatbuffer和IntBuffer与java中数据的存储方式不同的解决方法,编辑一个自己的BufferUtil工具类
- 高精度计算——数据的接受方法和存储方法
- 唯品会大数据存储和计算资源管理的痛、解决方法与思路
- Nand Flash数据存储方式和数据读写方法!
- JS中可以用来存储用户数据的方法或方式
- android的数据存储方式---5种方法
- 在学习过程中总结的LoaderManager的LoaderCallbacks刷新数据以使onLoadFinished回调方法能被执行的两种方式
- 一、存储数据到本地方法一:
- Android数据的四种存储方式(总)
- Android应用开发SharedPreferences存储数据的使用方法
- Android的五中数据存储方式
- Android数据的四种存储方式
- 查看存储在iPhone Simulator沙盒中应用数据的方法