如何转换和输出超大整数(64位)

来源:互联网 发布:java二维数组杨辉三角 编辑:程序博客网 时间:2024/05/21 18:35

开发环境: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 啦,哈哈!