【发布时间】:2017-02-19 01:20:50
【问题描述】:
我需要一种方法来使用非常大的数据类型。虽然 int 通常是 4 字节,但我需要 536、870、912 字节甚至更高的数据类型。我不能只使用数组,因为我需要能够使用它们转换为字符串、加法、减法、乘法、除法等。
如何创建或使用如此大的数据类型?我需要一个 uint4294967296_t :P
注意,我尝试过使用带有位域的结构,但它们不够大,我无法使用它在值之间进行转换。
【问题讨论】:
-
使用library,也许?
-
Greg 指的是 GIMP 库,通常为此推荐。
-
投票结束,因为图书馆的推荐目前不在 SO 上。
-
您有多种选择,包括 GMP:gmplib.org,或者创建自己的类。这个问题已经在 SO 上被问过好几次了,包括here 和here。
-
如果你想自己执行多精度数学,那么我建议你看看 Donald Knuth 的Art of Computer Programming。我相信第 II 卷,半数值算法,第 4 章,多精度算术,是您感兴趣的内容。另请参阅 How to add 2 arbitrarily sized integers in C++?,它提供了一些 C++ 库和 OpenSSL 的代码。
标签: c++ data-structures arbitrary-precision