如何在C++中保存大于 64 位的整数

How to save integer greater than 64 bits in C++?

本文关键字:整数 大于 保存 C++      更新时间:2023-10-16

我想存储长度大于 64 位的整数。每个整数的位数可以达到数百万,因为每个条目都被添加到应用程序中。然后对于 64 个这样的整数(长度相等),必须执行按位 AND 运算。

那么,什么是

节省时间的最佳C++数据结构呢?早些时候,我考虑过它的向量,因为它可以动态增加长度。另一种选择是使用 std:bitset。

但是我不确定如何使用这两种方法执行按位 AND,以便以最省时的方式完成。

谢谢

GNU 多精度库是一个很好的任意精度整数库。它很可能针对您的编译器/CPU 进行了大量优化,所以我会将其作为第一次开始,如果它不够快,请推出您自己的特定实现。

在获取大数据时,为向量重新分配内存非常昂贵,所以我会定义

struct int_node{
    bitset<256> holder; 
    int_node *next_node;
}

我认为这种方法可以节省内存管理的时间,并节省按位操作的一些周期。