Adding binary numbers

后端 未结 21 1387
孤独总比滥情好
孤独总比滥情好 2020-11-28 07:50

Does anyone know how to add 2 binary numbers, entered as binary, in Java?

For example, 1010 + 10 = 1100.

21条回答
  •  迷失自我
    2020-11-28 08:24

    Java solution

    static String addBinary(String a, String b) {
    
        int lenA = a.length();
        int lenB = b.length();
        int i = 0;
    
        StringBuilder sb = new StringBuilder();
        int rem = Math.abs(lenA-lenB);
        while(rem >0){
            sb.append('0');
            rem--;
        }
        if(lenA > lenB){
            sb.append(b);  
            b = sb.toString();
        }else{
            sb.append(a);
            a = sb.toString();
        }
    
        sb = new StringBuilder();
        char carry = '0';
        i = a.length();
        while(i > 0){
            if(a.charAt(i-1) == b.charAt(i-1)){
                sb.append(carry);
                if(a.charAt(i-1) == '1'){
                    carry = '1';
                }else{
                    carry = '0';
                }
            }else{
                if(carry == '1'){
                    sb.append('0');
                    carry = '1';
                }else{
                    carry = '0';
                    sb.append('1');
                }
            }
            i--;
        }
    
        if(carry == '1'){
            sb.append(carry);
        }
    
        sb.reverse();
        return sb.toString();
    
    }
    

提交回复
热议问题