双十进制数转换为HEX字符串

时间:2015-02-18 02:30:59

标签: c++ mfc

我想在MFC中将十进制数字(17592186044416)转换为十六进制字符串。我试图使用

code 1:
double ftw = 0;
CString str;
str.Format(_T("%X"), ftw); //this will always be 0 in HEX

code 2:
char t1[100];
_itoa_s(ftw, t1, 16);// this will give me 80000000 in HEX

好像是str.Format(_T("%X"),ftw);和_itoa_s(ftw,t1,16);功能有限制。是否有任何其他命令可用于将17592186044416转换为十六进制字符串? 谢谢。

1 个答案:

答案 0 :(得分:0)

您可以将其转换为64位整数,然后使用格式字符串中的I64限定符进行格式化:

double ftw = 17592186044416.0;

CString str;
str.Format(_T("%I64X"), (__int64)ftw);

对于上面的示例,str将包含字符串"100000000000"