在 C++ 中打印 2^64 整数
Print 2^64 integer in c++
我正在用 C++ 解决一个编程问题。问题是 输入的数字不大于 2^64。
我如何在 C++ 中处理这么大的数字?我也必须对数字使用减法。
有一种数据类型:long long
保证至少有 64 位(从 C++11 开始)。假设您没有负值,您可以在 unsigned long long
.
类型的变量中存储最多 2^64(但不包括)的值
uint64_t
/ unsigned long long
可以存储从 0 到 2^64-1 的数字,因此如果您没有恰好输入 2^64,或者没有针对它的特殊情况处理(例如,通过设置布尔值并在必要时使用替代公式),您可能会使用 uint64_t
。如果值可能为负,这将更没有希望,因为数字的大小 int64_t 可以处理将是 -2^63...2^63-1....
您可以使用 [long
] double
或 float
来存储数字 - 对于一些较大的整数,值可能是近似值。
您还可以获得一个能够处理非常大的数字的库 - 例如"GMP" - google 如果有兴趣的话。
我正在用 C++ 解决一个编程问题。问题是 输入的数字不大于 2^64。
我如何在 C++ 中处理这么大的数字?我也必须对数字使用减法。
有一种数据类型:long long
保证至少有 64 位(从 C++11 开始)。假设您没有负值,您可以在 unsigned long long
.
uint64_t
/ unsigned long long
可以存储从 0 到 2^64-1 的数字,因此如果您没有恰好输入 2^64,或者没有针对它的特殊情况处理(例如,通过设置布尔值并在必要时使用替代公式),您可能会使用 uint64_t
。如果值可能为负,这将更没有希望,因为数字的大小 int64_t 可以处理将是 -2^63...2^63-1....
您可以使用 [long
] double
或 float
来存储数字 - 对于一些较大的整数,值可能是近似值。
您还可以获得一个能够处理非常大的数字的库 - 例如"GMP" - google 如果有兴趣的话。