我有這個數字以十六進制:如何在C中打印十六進制雙精度?
FFFFFFFFFFFF
,我需要保存它,所以我用雙
double a=0xffffffffffff;
,但我需要打印和我不不知道該怎麼辦。每次我使用%f
,%d
,%x
,它不打印它的值;我只需要打印ffffffffffff
。我的代碼:
int main()
{
double a=0xffffffffffff;
printf("%x\n",a);
printf("%d\n",a);
printf("%X\n",a);
printf("%f\n",a);
return 0;
}
唯一的真值是%f
;返回十六進制的十進制值 - 它返回:
ffffffe0
-32
FFFFFFE0
281474976710655.000000
有了這個,我需要從十六進制改爲字符串,來比較它,因爲我在串有FFFFFFFFFFFF太多,我需要比較兩者。如果我不能printf
它,sprintf
也不會工作。
感謝我要去嘗試用無符號長長:) – 2013-05-08 13:13:22
確定它的工作原理,謝謝!它與無符號長多頭排列正確的有什麼不同? – 2013-05-08 13:24:18
爲什麼推薦'unsigned long long'而不是'uint_least64_t'? – 2013-05-08 13:48:56