如何转换和输出超大整数(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 啦,哈哈!

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