++や+、または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
-
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
-
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) { &