C で Big Int を実装する方法
はじめに
組み込みデータ型 long int には、big int と呼ばれるカスタム実装が必要です。ここでは、C で big int クラスを設計するための一般的なアプローチを示します。
データ構造
整数をより小さい数値 (通常は 1 桁または小さい基底値) のベクトルとして格納します。 。これにより、任意の長さの整数が可能になります。
template<class BaseType> class BigInt { typedef typename BaseType BT; protected: std::vector<BaseType> value_; };
算術演算
加算:
バイナリを使用して = 演算子を実装します。加算の原則。要素をループし、必要に応じて加算やキャリーの処理を実行します。
template<class BaseType> BigInt<BaseType>& BigInt<BaseType>::operator+=(BigInt<BaseType> const& operand) { BT count, carry = 0; for (count = 0; count < std::max(value_.size(), operand.value_.size()); count++) { //... (carry handling omitted for brevity) } return *this; }
その他の演算 (乗算、除算など)
その他の算術演算は、実装された演算を利用します。 = および - 演算子。最適化された実装には、既存のアルゴリズムの使用を検討してください。
その他の考慮事項
以上がC で Big Integer クラスを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。