1. ホーム
  2. c++

[解決済み] C++でbig intを実装する方法

2023-07-21 12:50:21

質問

プログラミングの練習として、C++でlong intより大きな数を扱えるbig intクラスを実装したいと思っています。 すでにいくつかのオープンソースの実装があることは知っていますが、自分自身で書いてみたいと思っています。 私は、正しいアプローチが何であるかについて感触を得ようとしています。

一般的な戦略は、文字列として数値を取得し、それをより小さな数値(例えば一桁)に分割し、配列に配置することだと理解しています。 この時点で、さまざまな比較演算子を実装するのは比較的簡単なはずです。 私の主な関心事は、加算や乗算のようなものをどのように実装するかということです。

私は、実際に動作するコードではなく、一般的なアプローチとアドバイスを探しています。

どのように解決するのですか?

大きなintクラスのために考慮すべきこと。

  1. 数学の演算子。+, -, /, *演算子の両側にクラスがある可能性があることを忘れないでください。 演算子の両側にクラスがあること、演算子を連結できること、演算子の 演算子は連結可能であること、オペランド 演算子の1つはint、float、doubleなどである可能性があることを忘れないでください。

  2. I/O演算子: >>、<< これは ここでは、ユーザー入力からクラスを適切に作成する方法と、出力用にフォーマットする方法を考えます。 ユーザー入力からクラスを作成する方法と、出力用にクラスをフォーマットする方法を理解する場所です。

  3. 変換/キャスト 図 どのような型やクラスに クラスが変換可能であるべきかを把握し 変換を適切に処理する方法 変換を適切に処理する方法を把握します。簡単なリストとしては double と float が含まれます。 int (適切な境界チェックあり) と複素数も含まれるかもしれません。 が範囲を処理できると仮定して)。