我想在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转换为十六进制字符串? 谢谢。
答案 0 :(得分:0)
您可以将其转换为64位整数,然后使用格式字符串中的I64
限定符进行格式化:
double ftw = 17592186044416.0;
CString str;
str.Format(_T("%I64X"), (__int64)ftw);
对于上面的示例,str
将包含字符串"100000000000"