首页 > 其他 > 详细

67. 二进制求和

时间:2021-04-03 13:25:40      阅读:24      评论:0      收藏:0      [点我收藏+]
package leetcode;

public class demo_67 {
    public String addBinary(String a, String b) {
        String s="";
        int i=a.length()-1;
        int j=b.length()-1;
        int c;
        //进位数
        int add=0;
        while(i>=0&&j>=0) {
            //减去48是为了将ASCII的0和1 转换成正常的0和1
            c= Integer.valueOf(a.charAt(i))-48+Integer.valueOf(b.charAt(j))-48+add;
            if(c>=2) {
                c=c%2;
                add=1;
            }
            else {
                add=0;
            }
            s=s+c;
            i=i-1;
            j=j-1;
            
        }
        if(j<0) {
            while(i>=0) {
                c=Integer.valueOf(a.charAt(i))-48+add;
                if(c>=2) {
                    c=c%2;
                    add=1;
                }
                else {
                    add=0;
                }
                s=s+c;
                i=i-1;
            }
        }
        if(i<0) {
            while(j>=0) {
                c=Integer.valueOf(b.charAt(j))-48+add;
                if(c>=2) {
                    c=c%2;
                    add=1;
                }
                else {
                    add=0;
                }
                s=s+c;
                j=j-1;
            }
        }
        if(add==1) {
            s=s+1;
        }
        StringBuffer sb=new StringBuffer(s);
        sb=sb.reverse();
        s=sb.toString();
        System.out.println(s);
        return s;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        demo_67 d67=new demo_67();
        String a="1010";
        String b="1011";
        d67.addBinary(a, b);
    }

}

 

67. 二进制求和

原文:https://www.cnblogs.com/Yshun/p/14613246.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!