Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

++や+、またはC / C ++の他の算術演算子を使用せずに2つの数値を追加するにはどうすればよいですか?


この記事では、+、++、-、-などの算術演算子を使用せずに2つの数値を加算する方法を説明します。

この問題を解決するために、バイナリ加算器ロジックを使用してそれらを解決できます。その場合、半加算器と全加算器が設計されました。これらの加算器は、1ビットの2進数を加算できます。複数の加算器をカスケード接続することで、より大きな数を加算する回路を作成できます。

その加算器では、数値間でXOR演算を実行し、次にキャリーに対してAND演算を実行しました。これらの機能は、2つの数値を追加するためにここに実装されています。

サンプルコード

#include <iostream>
using namespace std;
int add(int a, int b) {
   while (b != 0) {         //until there is no carry, iterater
      int carry = a & b;    //find carry by anding a and b
      a = a ^ b;           //perform XOR on a and b, and store into a
      b = carry << 1;     //the carry is shifted one bit to the left, and store it to b
   }
   return a;
}
int main() {
   int a, b;
   cout << "Enter two numbers to add: ";
   cin >> a >> b;
   cout << "The result is: " << add(a, b);
   return 0;
}

出力

Enter two numbers to add: 56
23
The result is: 79

  1. PHP – bcadd()関数を使用して2つの任意精度の数値を追加するにはどうすればよいですか?

    PHPでは、 bcadd() 数学関数は、2つの任意精度の数値を加算するために使用されます。 bcadd() 関数は2つのランダムな精度の数値を文字列として受け取り、結果を識別された精度にスケーリングした後、2つの数値の加算を返します。 構文 string bcadd ( $num_str1, $num_str2, $scaleVal) パラメータ bcadd() 数学関数は、 $ num_str1、$ num_str2の3つの異なるパラメーターを受け入れます。 および$scaleVal。 $ num_str1- 左のオペランドを表し、文字列型のパラメータです。 $ n

  2. C#で一時変数を使用せずに2つの数値を交換する方法

    2つの数値を交換するには、3番目の変数を使用し、一時変数を使用せずに算術演算子を実行します。 スワッピング用に2つの変数を設定します- val1 = 5; val2 = 10; 次に、スワップに対して次の操作を実行します- val1 = val1 + val2; val2 = val1 - val2; val1 = val1 - val2; 例 using System; namespace Demo {    class Program {       static void Main(string[] args) {   &