2

任意の大きな整数に対して Solovoy-Strassen 素数性テストを実装しようとしています。bignum も作成します (これは学術プロジェクトであるため、サードパーティの実装は使用できません)。bignum の次の構造を決定しました。

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

数字にはbase-32を使用します(したがって、部分積の場合はuint64_t、少なくとも部分積になると思います)。この決定は、以前に尋ねられた質問に基づいています。

私は立ち往生しています。任意のサイズの 10 進数として表された文字列を取得して、上記の bignum 構造に変換する方法がわかりません。

誰か教えてください。任意の文字列を uint16_t 配列に格納される 8 進数に変換するなど、より小さな例でもいいでしょう。

ありがとう。

4

1 に答える 1

3

ルーチンを呼び出して、算術演算を行う必要があります。たとえば、文字列が "2013" (2013 年を 10 進数で表す) の場合は、次のようにしますa=0; a=10*a+2; a=10*a+0; a=10*a+1; a=10*a+3

于 2010-04-25T19:42:28.590 に答える