如何轉換和輸出超大整數(64位)

開發環境:WIN7(32位)、VC6

 

數值轉字符串

-----------------------

printf("%I64u", (__int64)(1<<64)-1);

 

輸出

18446744073709551615

 

如果不加類型限定(__int64)

printf("%I64u", (1<<64)-1);

 

則默認按操作系統位數計算即時值,輸出:

4294967295

 

 

字符串轉數值

------------------------

可以使用__atoi64(),該函數定義在 stdlib.h 頭文件中。

 

unsigned __int64 nU64 = _atoi64("18446744073709551615");

 

如果給定"18446744073709551616"就輸出 0 啦,哈哈!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章