Doule类型转成十六进制查看

一直都知道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;

}

时间: 2024-08-06 20:03:20

Doule类型转成十六进制查看的相关文章

加法将 number 类型 转换成 string 类型

python也不是没有缺点在性能方面就Java.C++等老前辈还是没得比的,另外python和nodejs一样只能使用CPU单核,也是性能方面影响是因素之一. 发现只有A线程打印了"A",并没有发现B线程和C线程打印字符串:(.难道是A线程更改了Integer对象的值,而B线程和C线程并没有"看到"更新后的值?于是,在线程类的run方法的while循环中增加代码如下 在ABP里,一个应用服务应当实现IApplicationService接口,为每个应用服务创建一个接

将COleDateTime类型数据转换成char *数据

用OpenCV做多摄像头校准时间,在图像上显示时间信息,需求要将COleDateTime类型数据转换成char *数据 具体代码如下: 1: COleDateTime m_checkDate; 2: COleDateTime timeCur; 3: timeCur = COleDateTime::GetCurrentTime(); 4: COleDateTime timeStart(timeCur.GetYear(), timeCur.GetMonth(), timeCur.GetDay(),

从Cell类型转变成数据型

我们有一个如下的cell数据 cdata = {'1' '11' '111' '1111' '11111'}; 现在要把他转变成double型的数组,很自然会想到的方法是cell2mat,可悲的是会遇到一个问题: matlab要求每一行的数据长度要相同才行. 解决这个问题: 1.先把cell转变成char数组,在把他转变成数据类型.原理是转变成char之后的矩阵每行的长度是相同的. str2num(char(cdata)) 2.使用cellfun函数,第一个参数传递对每个cell单元使用的函数名

JavaScript基础 空字符串:string 类型,转成bool类型是 :false Boolean()系统函数

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

JavaScript基础 null:object 类型,转成bool类型是 :false Boolean()系统函数

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

JavaScript基础 NaN:number 类型,转成bool类型是 :false Boolean()系统函数

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

HEX格式数据转换成十六进制字符串

1 /** 2 3 * Hex格式数据转换成十六进制字符串 4 5 * @param src 6 7 */ 8 9 public void bytesToHexString(byte[] by){ 10 StringBuilder stringBuilder = new StringBuilder(""); 11 for (int i = 0; i < by.length; i++) { 12 int in = by[i] & 0xFF; 13 String str= I

javascript把RGB指定颜色转换成十六进制颜色(Converting R,G,B values to HTML hex notation)

Prologue 看见一篇很好的外国文章,Making annoying rainbows in javascript,其实我当时很想把它翻译下来的,但是对于一个连六级都没过的人确实有点难度,一些文段看起来是知道意思但是就不知道怎么用自己的话来表达.越来越觉得对于IT行业来说英语至少要达到能读的程度,毕竟好的东西很多是外国的,还有哦,要会翻墙.对于那篇文章我其实还没看完,还在慢慢消化中,但是看到一个函数确实真的很吸引我,实现的是Converting R,G,B values to HTML he

3、将二进制转换成十六进制

/* 将二进制转换成十六进制 */ class BinaryToHex { public static void main(String[] args) { int num = 120; char[] result = new char[1024]; int count = 0; while((num & 15) > 0) { int tmp1 = num & 15; if(tmp1 > 9) { result[count] = (char)(tmp1 - 10 + 'A');