浮点数的存储


浮点类型

  1. float
  2. double
  3. long double
单精度浮点型float4个字节
双精度浮点型double8个字节(默认)
复数浮点型\\

存储

单精度浮点值:

  32位=1(符号位)+8(指数位)+23(尾数位)

  1. 符号位(1个位):
    0正,1负

  2. 指数位(8个位):(浮点数的取值范围)
    (存储范围:0~ (127) ~255,相当于unsigned char)
    因实际指数存在负数:
    实际指数+127(偏移量) = 存储指数
    指数取值范围:-127 ~ 127
    浮点数的取值范围(2指数): 10-38 ~1038

  3. 尾数位(23个位):(浮点数的有效值)
    存储的是1.后面的值,不足补0
    尾数位的存储精度(有效个数):6 ~ 7位
    223 = 8388608——7-1=6位(只能精确表示6位,表示部分7位)
    例:0~30 ——1位(只能精确表示1位,无法表示31 ~ 99)

例:
对于:12.5二进制=1100.1
1100.1=1.1001*23(科学计数法)
指数位:3(实际指数) —— 3+127 = 130(存储指数)=1000 0010
尾数位:1001+19个0
存储:0 10000010 10010000000000000000000
二进制:0100 0001 0100 1000 0000 0000 0000 0000
十六进制:4  1  4  8  0  0  0  0
真实地址:00004841

关于真实地址存储
例:0x12345678
小端:低地址放低数据(PC、inter)
78 56 34 12
大端:低地址放高数据(手机ARM,网络)
12 34 56 78

双精度浮点值:

  64位=1(符号位)+11(指数位)+52(尾数位)

  1. 符号位(1个位):
    0正,1负

  2. 指数位(11个位):
    0~ (1023) ~2047
    实际指数+1023 = 存储指数

  3. 尾数位(52个位):有效值
    存储的是1.后面的值,不足补0
    尾数~精度(有效个数):15 ~ 16位
    252——16-1=15位

例:
对于:12.75二进制=1100.11
1100.11=1.10011 * 23(科学计数法)
指数位:3(实际指数) -> 3+1023 = 1026(存储指数)=100 0000 0010
尾数位:10011+48个0
存储:0 10000000010 10011000000000……0000000000

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值