首页 > 其他 > 详细

二进制相加

时间:2016-01-24 00:23:52      阅读:231      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!