使用【Java】写的代码给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 示例1: 输入: a =“11”, b =“1” 输出:“100” 示例2: 输入: a =“1010”, b =“1011” 输出:“10101”
时间: 2024-09-14 07:08:10 浏览: 46
java读取图片并转化为二进制字符串的实现方法
在Java中,你可以通过模拟手工二进制加法的方法来计算两个二进制字符串的和。基本思路是使用两个指针分别从两个字符串的末尾开始向前遍历,逐位进行加法运算,并处理进位。下面是一个示例代码,它实现了上述算法:
```java
public class BinaryAddition {
public static String addBinary(String a, String b) {
StringBuilder result = new StringBuilder();
int lengthA = a.length() - 1;
int lengthB = b.length() - 1;
int carry = 0; // 进位
while (lengthA >= 0 || lengthB >= 0 || carry != 0) {
int sum = carry;
if (lengthA >= 0) {
sum += a.charAt(lengthA--) - '0'; // 将字符'0'或'1'转换为整数0或1
}
if (lengthB >= 0) {
sum += b.charAt(lengthB--) - '0';
}
carry = sum > 1 ? 1 : 0; // 计算进位
result.append(sum % 2); // 余数是当前位的结果
}
return result.reverse().toString(); // 反转结果字符串并返回
}
public static void main(String[] args) {
String a = "1010";
String b = "1011";
String sum = addBinary(a, b);
System.out.println(sum); // 输出应该是“10101”
}
}
```
这段代码定义了一个名为`BinaryAddition`的类,其中包含了一个静态方法`addBinary`用于计算两个二进制字符串的和。它使用了`StringBuilder`来构建结果字符串,并在最后将其反转以得到正确的顺序。
阅读全文