二进制求和_两个字符串表示二进制的数位

现获取道两个字符串长度最长的n,将char类型转化为int类型,设置car来接收进位,然后循环之后,再判断car是否为1,如果为1,用StringBuilde类型来接收,最后在反转一下,调用toString方法返回。

 

package com.lhb.offer;

/**
 * @author lhb
 * @date 2022/3/16
 */
public class Offer_67 {
    static String sumTwo(String a, String b) {
        int n = Math.max(a.length(), b.length());
        int ans = 0;
        int car = 0;
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < n; i++) {
            int va = i < a.length() ? (a.charAt(a.length() - i - 1) - '0') : 0;
            int vb = i < b.length() ? (b.charAt(b.length() - i - 1) - '0') : 0;
            car = car + va + vb;
            sb.append(car % 2);
            car = car / 2;
        }
        if (car == 1) {
            sb.append('1');
        }
        return sb.reverse().toString();
    }
    public static void main(String[] args) {
        String a = "1111";
        String b = "001";
        System.out.println(sumTwo(a, b));
    }
}

 

posted @ 2022-03-16 10:39  牵魂  阅读(46)  评论(0)    收藏  举报