首页 > 代码库 > Doule类型转成十六进制查看
Doule类型转成十六进制查看
一直都知道double的存储格式是IEEE制定的标准,但是从来没有看到C++中double是怎么存的。
今天突发奇想,想看看double在C++是怎么存储的。找了很久发现可以用union轻松的完成。
union Double2Int { double d; unsigned __int64 i; };
但是,想要输出的时候又要费一番功夫。原因是%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类型转成十六进制查看
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。