【发布时间】:2016-01-30 01:48:23
【问题描述】:
我正在考虑使用大整数,我认为的一种方法是使用Gmplib,我处理的是小例子,但它可以处理像 2 ^ (2 ^ (2 ^ 1024)) 这样的数字吗??
我的问题是如何表示这个大数字,因为(不确定)计算器也可能会溢出。
【问题讨论】:
-
“我想做 X,一种方法是使用 FooLib。... 有任何库吗?” ……呃……什么?您刚刚回答了自己的问题!
-
你需要 2^(2^1024) 位来存储这个数字。你有这么多比特吗?
-
@KerrekSB: mrob.com/pub/perl/hypercalc.html
-
宇宙有多少个原子?一般规则是在发布问题之前先思考。
-
位代表什么由程序员定义。可以表示
0或2 ** (2 ** (2 ** 1024))的变量占用1 位。可以表示-128 * 2 ** (2 ** (2 ** 1024))到128 * 2 ** (2 ** (2 ** 1024))范围内的任何数字的变量占用8 位。语言和 CPU 内置了对非常少量的表示形式的支持;但这只是一种不便,而不是限制。不便之处包括(例如)当编译器无法处理数字本身的表示时编写char myNumber = 1; // Represents 1 * 2 ** (2 ** (2 ** 1024))。