如何转换和输出超大整数(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 啦,哈哈!
posted @ 2011-01-28 13:23  叮叮当当  阅读(569)  评论(0编辑  收藏  举报