holyya.com
2025-09-04 22:28:59 Thursday
登录
文章检索 我的文章 写文章
C++实现二进制加法
2023-06-27 22:00:12 深夜i     --     --
C++ 二进制加法 实现 算法

在计算机领域中,二进制加法是一项非常基本且重要的操作。我们可以用C++语言来实现二进制加法,下面我们就来介绍一下如何实现。

二进制加法的基本原理就是将两个二进制数的每一位相加,如果和小于2,则该位的结果就等于和;如果和大于等于2,则要在本位上进位,即将本位的结果减去2,然后将进位的1加到高一位上。接着,再将下一位继续相加,直到最高位的进位也被加入到结果中。

我们可以采用字符串来存储二进制数,具体的步骤如下:

1.输入两个二进制数,用两个字符串来存储它们。

2.将两个字符串的长度扩展到相同的长度,不足的高位补0。

3.从最低位开始,将对应位的两个数相加,并加上进位。

4.如果和小于2,本位结果就等于和;如果和大于等于2,本位结果就等于和减2,并将进位标记为1。

5.然后将下一位继续相加,直到最高位。

6.如果最高位有进位,则要将进位加到结果的最高位上。

7.将结果倒序输出即可。

下面是C++代码实现:

#include

#include

using namespace std;

string addBinary(string a, string b) {

  string res = "";

  int carry = 0;

  int i = a.size() - 1, j = b.size() - 1;

  while(i >= 0 || j >= 0){

    int num1 = i >= 0 ? a[i] - '0' : 0;

    int num2 = j >= 0 ? b[j] - '0' : 0;

    int sum = num1 + num2 + carry;

    carry = sum >= 2 ? 1 : 0;

    sum = sum >= 2 ? sum - 2 : sum;

    res += to_string(sum);

    i--; j--;

  }

  if(carry == 1) res += "1";

  reverse(res.begin(), res.end());

  return res;

}

int main() {

  string a = "1101";

  string b = "101";

  cout << addBinary(a, b) << endl;

  return 0;

}

这里使用了 C++ 自带的字符串库和数值字面量,代码的思路清晰,易于理解,实现了简单的二进制加法功能。

总之,通过学习C++实现二进制加法的代码,不仅对C++的运用有了更好的了解,同时也加深了对计算机底层运行的理解,以及二进制的相关知识。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复