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

时间:2012-04-29 03:10:03

标签: c++ integer bitwise-operators bitwise-and

我想存储长度超过64位的整数。在应用程序中添加每个条目时,每个整数的位数可以达到数百万。 然后对于64个这样的整数(长度相等),必须执行逐位AND操作。

那么什么是最佳的C ++数据结构,以便节省时间? 早些时候我曾考虑过它的向量,因为它可以动态地增加长度。其他选项是使用std:bitset。

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

由于

2 个答案:

答案 0 :(得分:3)

GNU Multiprecision Library是一个很好的任意精度整数库。它很可能在编译器/ CPU的具体情况下进行了大量优化,因此我将首先将其作为第一次启动,如果速度不够快,请自行完成特定的实现。

答案 1 :(得分:0)

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

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

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