C++ 在不使用其他库的情况下,获得高于63的2的答案

C++ 在不使用其他库的情况下,获得高于63的2的答案,c++,math,C++,Math,我想知道在不使用比标准64位数据类型容纳更多空间的附加库的情况下,获得2^65之类问题的答案的最佳方法是什么。我曾考虑过使用字符,但这似乎需要大量的计算时间。我通过让int中的每一位代表一个数字,将数字映射到了数十亿。这将是一个整数数组,因此数组中第3个整数的第5位将是(((2*32)-1)+5)68,第2个整数的第2位将是(((1*32)-1)+2)33等等。通过这种方式,映射更高数字所需做的就是增加数组大小。所需的总空间将比其他情况少32倍,您可以将所有数字映射到限制。但是,使用此方法,每个

我想知道在不使用比标准64位数据类型容纳更多空间的附加库的情况下,获得2^65之类问题的答案的最佳方法是什么。我曾考虑过使用字符,但这似乎需要大量的计算时间。

我通过让int中的每一位代表一个数字,将数字映射到了数十亿。这将是一个整数数组,因此数组中第3个整数的第5位将是(((2*32)-1)+5)68,第2个整数的第2位将是(((1*32)-1)+2)33等等。通过这种方式,映射更高数字所需做的就是增加数组大小。所需的总空间将比其他情况少32倍,您可以将所有数字映射到限制。但是,使用此方法,每个数字只能有1个

为什么不想使用外部库呢?
\uu int128
,这是一种内置类型的编译器,您可能需要构建自己的数据类型。您需要一个计数器来计算您的号码有多少套int64 MAX(或您正在使用的任何数据类型)。这类似于从10进制转换为32进制(或其他),只是转换为64进制最大值。这不是一个完美的答案,但
double
可以表示高达1023的2次幂。当然,可以使用浮点。。。但这可能不是你想要的。