C++ 大整数,这是什么意思

C++ Biginteger, what does this mean?

本文关键字:是什么 意思 整数 C++      更新时间:2023-10-16

我很困惑为什么我们需要 BASE=100000000 和 WIDTH=8。这段代码来自一本书,但我不明白。

struct Biginteger {
  static const BASE = 100000000;
  static const WIDTH = 8;
  vector<int> s;
  Biginteger(long long int num = 0) { *this = num; }
  Biginteger operator=(long long num) {
    s.clear();
    do {
      s.push_back(num % BASE);
      num /= BASE;
    } while (mun > 0);
    return *this;
  }

元类型不能存储任意大的数字,这就是为什么在这里需要BigInteger。BigInteger 的思想是使用基元类型中的小数序列来表示大数。

使用 BASE=100000000WIDTH=8 ,您实际上是将原始数字 8 位数字与 8 位数字分开。

例如,254325623456546将被(2543256, 23456546)

您可以简单地更改为其他(底座,宽度(。例如,BASE=10WIDTH=1表示您正在逐位存储数字。例如,254325623456546将被(2, 5, 4, 3, 2, 5, 6, 2, 3, 4, 5, 6, 5, 4, 6)