如何在32位C ++中打印大于2 ^ 32的数字?

时间:2014-10-19 03:31:56

标签: c++ biginteger

我正在编写一个生成大素数的程序。大于2 ^ 32。如何在32位C ++中生成如此大的数字?我在32位处理器上使用Windows 7。我知道我可以获得64位支持购买新的64位计算机,但目前不是一种选择。

4 个答案:

答案 0 :(得分:4)

使用long long或包含stdint.hcstdint并使用int64_tuint64_t。 除此之外,您还可以在http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx

中引用Windows数据类型

从此列表中,您可以使用DWORDLONGDWORD64INT64

答案 1 :(得分:2)

打印号码,请使用%lld与printf:

long long variable;
printf( "your long long variable: %lld", variable ); 

答案 2 :(得分:1)

使用至少为64位的long long,并且它也可以在32位计算机上使用。

答案 3 :(得分:0)

还有GMP库,用于任意大小的有符号整数,甚至> 2 ^ 64。 C ++接口通过运算符重载使变量的行为与普通的int一样。