【问题标题】:How to save integer greater than 64 bits in C++?如何在 C++ 中保存大于 64 位的整数?
【发布时间】:2012-04-29 14:43:37
【问题描述】:

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

那么,什么是最高效的操作 C++ 数据结构? 早些时候我考虑过它的向量,因为它可以动态增加长度。其他选择是使用 std:bitset。

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

谢谢

【问题讨论】:

  • 那里有一些不错的任意精度整数库。

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


【解决方案1】:

GNU Multiprecision Library 是一个很好的任意精度整数库。它很可能已针对您的编译器/CPU 的具体细节进行了大量优化,因此我会首先使用它,如果速度不够快,请推出您自己的具体实现。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-29
      • 1970-01-01
      • 2012-03-25
      • 2010-09-14
      • 2021-09-29
      • 2013-02-25
      • 1970-01-01
      相关资源
      最近更新 更多