给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。提供junit代码和源代码
时间: 2023-11-05 14:28:27 浏览: 80
好的,请稍等,我为您提供代码。
```java
public class BinarySum {
public static String binarySum(String a, String b) {
int carry = 0;
StringBuilder sb = new StringBuilder();
int i = a.length() - 1, j = b.length() - 1;
while (i >= 0 || j >= 0) {
int sum = carry;
if (i >= 0) {
sum += a.charAt(i--) - '0';
}
if (j >= 0) {
sum += b.charAt(j--) - '0';
}
sb.append(sum % 2);
carry = sum / 2;
}
if (carry != 0) {
sb.append(carry);
}
return sb.reverse().toString();
}
}
```
下面是对应的JUnit测试代码:
```java
import org.junit.Assert;
import org.junit.Test;
public class BinarySumTest {
@Test
public void testBinarySum() {
Assert.assertEquals("10", BinarySum.binarySum("1", "1"));
Assert.assertEquals("101", BinarySum.binarySum("100", "1"));
Assert.assertEquals("1000", BinarySum.binarySum("111", "1"));
Assert.assertEquals("110", BinarySum.binarySum("101", "1"));
Assert.assertEquals("100000", BinarySum.binarySum("11111", "1"));
}
}
```
以上是对应的源代码和JUnit测试代码,您可以根据需求进行调整。
阅读全文