我正在编写一个生成大素数的程序。大于2 ^ 32。如何在32位C ++中生成如此大的数字?我在32位处理器上使用Windows 7。我知道我可以获得64位支持购买新的64位计算机,但目前不是一种选择。
答案 0 :(得分:4)
使用long long
或包含stdint.h
或cstdint
并使用int64_t
和uint64_t
。
除此之外,您还可以在http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx
从此列表中,您可以使用DWORDLONG
,DWORD64
或INT64
。
答案 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一样。