
java
public class Solution {
public String addBinary(String a, String b) {
StringBuilder result = new StringBuilder();
int i = a.length() - 1;
int j = b.length() - 1;
int carry = 0;
while (i >= 0 || j >= 0 || carry != 0) {
int sum = carry;
if (i >= 0) {
sum += a.charAt(i--) - '0'; // 转换为数字
}
if (j >= 0) {
sum += b.charAt(j--) - '0'; // 转换为数字
}
// 使用位运算计算当前位和进位
result.append(sum & 1); // 当前位
carry = (sum >> 1) & 1; // 进位
}
return result.reverse().toString();
}
}