二进制相加

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二进制相加相关的知识,希望对你有一定的参考价值。

a,b 为二进制位串

d:下一进位

c:当前进位

x:和的当前位

#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main(){
    string a = "101";
    string b = "11111";
    string s;
    stringstream ss; 
    int x, c, d;
    c = 0;
    while (a.size() > b.size())
        b = "0" + b;
    while (a.size() < b.size())
        a = "0" + a;
    cout << a << endl;
    cout << b << endl;
    for (int i = a.size() - 1; i >= 0; i--){
        d = ((a[i] - 0) + (b[i] - 0) + c ) / 2;
        x = (a[i] - 0) + (b[i] - 0) + c - 2 * d;
        ss << x;
        c = d;
    }        
    ss << c;
    ss >> s;
    for (int i = s.size() - 1; i >= 0; i--)
        cout << s[i];
    return 0;
}

 

以上是关于二进制相加的主要内容,如果未能解决你的问题,请参考以下文章

怎么将C# 中textbox的字符串转为16进制 然后以16进制相加?

二进制相加

片段事务中的实例化错误

10进制转成2进制 然后相加

LeetCode 67. Add Binary (二进制相加)

二进制相加