Computer >> Máy Tính >  >> Lập trình >> lập trình C

Làm cách nào để thêm hai số mà không sử dụng ++ hoặc + hoặc bất kỳ toán tử số học nào khác trong C / C ++?

Trong bài viết này, chúng ta sẽ xem cách cộng hai số mà không cần sử dụng các toán tử số học như +, ++, -, hoặc -.

Để giải quyết vấn đề này, chúng ta có thể giải quyết chúng bằng cách sử dụng logic bộ cộng nhị phân. Trong trường hợp đó, chúng tôi đã thiết kế bộ cộng một nửa và bộ cộng đầy đủ. Các bộ cộng này có thể thêm các số nhị phân một bit. Bằng cách xếp tầng nhiều bộ cộng, chúng ta có thể tạo mạch để thêm các số lớn hơn.

Trong bộ cộng đó, chúng tôi đã thực hiện phép toán XOR giữa các số, sau đó đối với phần mang chúng tôi đã thực hiện logic ANDing. Các tính năng này được triển khai ở đây để thêm hai số.

Mã mẫu

#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;
}

Đầu ra

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