两个二进制数相加后得到新的二进制数

来源:互联网 发布:大人认字软件 编辑:程序博客网 时间:2024/06/06 00:41
public static void main(String[] args) {String str1 = "1010";String str2 = "1011";System.out.println(addBinary(str1,str2));}public static String addBinary(String a, String b) { if(a == null || a.isEmpty()) {            return b;        }        if(b == null || b.isEmpty()) {            return a;        }        char[] aArray = a.toCharArray();        char[] bArray = b.toCharArray();        StringBuilder stb = new StringBuilder();        int i = aArray.length - 1;        int j = bArray.length - 1;        int aByte;        int bByte;        int carry = 0;        int result;        while(i > -1 || j > -1 || carry == 1) {            aByte = (i > -1) ? Character.getNumericValue(aArray[i--]) : 0;            bByte = (j > -1) ? Character.getNumericValue(bArray[j--]) : 0;            result = aByte ^ bByte ^ carry;            carry = ((aByte + bByte + carry) >= 2) ? 1 : 0;            stb.append(result);        }        return stb.reverse().toString();    }