码迷,mamicode.com
首页 > 其他好文 > 详细

double型数据存储

时间:2016-07-13 15:58:13      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:

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);

 

double型数据存储

标签:

原文地址:http://www.cnblogs.com/dkma/p/5666749.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!