float,double数据类型在内存中的存储方式
2015-04-12 20:18
405 查看
float
float在内存中用四个byte表示符号位 sign | 指数位 exponent | 尾数 mantissa |
---|---|---|
1 bit | 8 bits | 23 bits |
指数位:范围从0~255,但实际的指数等于这里的指数减去127,所以真正的指数范围从-127~128。
尾数:23bit的尾数实际上表示24bit的数据,因为所有二进制小数都可以表示成1.xxxx xxxx…。所以在表示24bit的二进制小数时,1可以省略。
例如4.5在内存中表示为:
二进制形式:100.1==>1*2^2 + 0*2^1 + 0*2^0 + 1*2^-1 = 4.5
内存中:
符号位 sign | 指数位 exponent | 尾数 mantissa |
---|---|---|
0 | 1000 0001 | 0010 0000 0000 0000 0000 000 |
0100 0000 1001 0000 0000 0000 0000 0000 0x40 90 00 00
将内存形式再转换回十进制形式的4.5:
1.0010 0000 0000 0000 0000 000(尾数) * 2^2(指数129-127=2)=100.1000 0000 0000 0000 0000 0
又如0.1在内存中表示为:
二进制形式:0.0001 1001 1001 1001 1001 1001 1010==>0x0.199999A
内存中:
符号位 sign | 指数位 exponent | 尾数 mantissa |
---|---|---|
0 | 0111 1011 | 1001 1001 1001 1001 1001 101 |
0011 1101 1100 1100 1100 1100 1100 1101 0x 3D CC CC CD
double
float在内存中用8个byte表示符号位 sign | 指数位 exponent | 尾数 mantissa |
---|---|---|
1 bit | 11 bits | 52 bits |
相关文章推荐
- float ,double类型在内存中存储方式
- float类型double类型在内存的存储方式研究
- 转载——C语言中float,double类型,在内存中的结构(存储方式)
- C语言中float,double类型,在内存中的结构(存储方式).
- 转载:C语言中float,double类型,在内存中的结构(存储方式)
- C语言中float, double类型在内存中的存储方式
- C语言中float,double类型,在内存中的结构(存储方式).
- C语言:自己动手查看float以及double类型的变量2.5在内存中的存储方式。
- C语言中float,double类型,在内存中的结构(存储方式)
- float:double类型数据在内存中中存储格式
- C语言中float,double类型,在内存中的结构(存储方式)
- C语言:自己动手查看float以及double类型的变量2.5在内存中的存储方式。
- C语言中float,double类型,在内存中的结构(存储方式).
- C语言 float、double数据在内存中的存储方式
- int_float_double数据类型的存储格式。
- java中的各种数据类型在内存中存储的方式
- java中的各种数据类型在内存中存储的方式
- java中的各种数据类型在内存中存储的方式 二
- java中数据类型在内存中存储的方式
- java中的各种数据类型在内存中存储的方式