シリーズ38は、プランを勝ち:足し算と引き算、掛け算と割り算をしないでください

主なものを覚えておいてください:デジタル算術加算、乗算、除算の場合はプラスマイナスビット・コンピューティングであるより。ビット単位のXORは、非含まれています。そして、ビット演算に2つの数値を追加する方法を参照してください。コンピュータがバイナリであるため、そのバイナリ思考で考えます。ビットにキャリーのために、すなわち1~2、後左側で見ることができ、0、同一ではない異なる1:排他的論理和に対応する加算演算のためのキャリービットは:即ち二つの部分に分かれビット。上記二つの方法は、それぞれ、加算器の加算動作は、2進数ではない処理する方法をキャリービットを必要とすると述べました。最後のステップは、上記二つのステップの結果を加算することです。第三の部分は、操作を呼び出すプラス独自の動作機能を追加するために同じであることに留意されたいです。だから、再帰を使用します。

1  クラスソリューション{
 2  公共3。     INT追加(INT NUM1、INT NUM2)
 4。     {
 5。         IF(NUM1が== 0// 特別なデータの書き込み処理があります
6。             戻りNUM2;
 7。         IF(NUM2の== 0 8。             復帰NUM1;
 9。         int型の TEM ^ = NUM1をNUM2; // ステップは:必要とされないビットに対するキャリーが加算され、2つの数値をXOR演算
10を         IF(NUM1 NUM2&== 0// 再帰終了条件
11。             リターンTEM。
12は、         他の
13は         、{
 14              INT TEM2 =(&NUM1をNUM2)<< 1。 ; // ステップ:操作後に残るための2つの数字、キャリービットを追加するための必要性
15              リターン追加(TEM、TEM2)を、// 第三段階:再帰的に、最初の二つの結果を自分自身を呼び出す追加
16          }
 17      }
 18 }。

 

おすすめ

転載: www.cnblogs.com/neverland0718/p/11230680.html