码迷,mamicode.com
首页 > 其他好文 > 详细

二进制相加

时间:2016-01-24 00:25:44      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

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

 

二进制相加

标签:

原文地址:http://www.cnblogs.com/celahir/p/5154342.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!