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

Doule类型转成十六进制查看

时间:2014-11-19 18:57:22      阅读:422      评论:0      收藏:0      [点我收藏+]

标签:style   io   ar   color   sp   on   代码   as   line   

一直都知道double的存储格式是IEEE制定的标准,但是从来没有看到C++中double是怎么存的。

今天突发奇想,想看看double在C++是怎么存储的。找了很久发现可以用union轻松的完成。

union Double2Int
{
	double d;
	unsigned __int64 i;
};



根据union的特性,这样就可以轻松的看到double是怎么存储的。

但是,想要输出的时候又要费一番功夫。原因是%x只支持32位的十六进制输出。

输出64位十六进制需要用到%llx。

最后给出,测试代码。

#include <stdio.h>

union Double2Int
{
	double d;
	unsigned __int64 i;
};
int main()
{
	Double2Int d2i;

	d2i.d = -1;
	printf("double : %lf\tHex : %llx\n", d2i.d, d2i.i);

	return 0;

}




Doule类型转成十六进制查看

标签:style   io   ar   color   sp   on   代码   as   line   

原文地址:http://my.oschina.net/u/1171424/blog/346468

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