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