二进制求和

来源:互联网 发布:sql语句中case when 编辑:程序博客网 时间:2024/05/17 06:17

二进制求和 

给定两个二进制字符串,返回他们的和(用二进制表示)。

样例

a = 11

b = 1

返回 100


public String addBinary(String a, String b) {        int i = a.length() - 1, j = b.length() - 1;        String result = "";        int pre = 0;        while (i >= 0 && j >= 0) {            int a1 = a.charAt(i) - '0';            int b1 = b.charAt(j) - '0';            int temp = a1 + b1 + pre;            result += temp % 2;            pre = temp / 2;            i--;            j--;        }        if (i != -1) {            for (int k = i; k >= 0; k--) {                int temp = a.charAt(k)  - '0' + pre;                result += temp % 2;                pre = temp / 2;            }        } else {            for (int k = j; k >= 0; k--) {                int temp = b.charAt(k) - '0' + pre;                result += temp % 2;                pre = temp / 2;            }        }        if (pre != 0) {            result += pre;        }        return new StringBuilder(result).reverse().toString();    }