二进制求和_两个字符串表示二进制的数位
现获取道两个字符串长度最长的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)); } }

浙公网安备 33010602011771号