char[] charsA = a.toCharArray(); char[] charsB = b.toCharArray(); int step = 0; int m = a.length(); int n = b.length(); StringBuilder sb = newStringBuilder(); int max = Math.max(m, n); for (int i = 1; i <= max; i++) { int sum = 0; if (m - i >= 0) { sum += charsA[m - i] - '0'; } if (n - i >= 0) { sum += charsB[n - i] - '0'; } sum += step; StringBuilder temp = newStringBuilder().append(sum % 2); sb = temp.append(sb); step = sum / 2; } if (step == 1) { return"1" + sb; }