double型数据存储

double型占64位(0~63)

其中最高位63bit表示符号:0正1负

62~52bit:11位的指数位

52~0bit:52位的数据位

 

举例说明:-64.446263

  1. 共8字节,63bit:1; 
  2. 62~52bit:   64=100 000; 所以指数应该是7,这里使用隐藏位技术,第一位1隐藏,所以指数位=6;同时指数位基数为1023所以最终为1029=100 0000 0101;
  3. 52~0:前6位应该是00 0000(64=100 0000 隐藏最高位1);剩下46位表示0.446263

使用十六进制表示: 0x c0 00  50 ......

实际存储为高位字节在最右边。

 

char型转成double型在C++中可以使用memcpy函数:

    char temp[8] = { 37,-3,-23,-110,-113,-36,80,-64 };
    double d=0;
    memcpy(&d, temp, 8);

 

转载于:https://www.cnblogs.com/dkma/p/5666749.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值