2

我正在尝试为任意大整数实现 Solovoy-Strassen 素数测试。我还将编写一个 bignum(不能使用 3rd 方实现,因为这是一个学术项目)。我已经决定了 bignum 的以下结构:

struct {
  uint64_t *tab;
  int size; // number of limbs
  int sign;
}

我将使用 base-32 作为我的数字(因此 uint64_t,对于部分产品,至少我认为它们将是部分产品)。这个决定是基于之前提出的问题。

我处于静止状态。我无法想象如何将一个字符串表示为任意大小的小数并将其转换为上面的 bignum 结构。

有人可以启发我。即使是一个更小的例子也会很好,例如将任意字符串转换为八进制数字,这些数字将存储在 uint16_t 数组中。

谢谢。

4

1 回答 1

3

你需要做算术,调用你的例程。例如,如果字符串是“2013”​​(以十进制表示 2013),请执行以下操作:a=0; a=10*a+2; a=10*a+0; a=10*a+1; a=10*a+3

于 2010-04-25T19:42:28.590 回答