java 二进制加法实现两个二进制数的位数在10000以内
时间: 2024-02-25 20:59:18 浏览: 68
下面是Java代码实现两个二进制数的位数在10000以内的二进制加法:
```java
public class BinaryAddition {
public static void main(String[] args) {
String binary1 = "1010";
String binary2 = "1101";
// 补足 0,使两个二进制数位数相等
while (binary1.length() < binary2.length()) {
binary1 = "0" + binary1;
}
while (binary2.length() < binary1.length()) {
binary2 = "0" + binary2;
}
StringBuilder result = new StringBuilder();
int carry = 0;
for (int i = binary1.length() - 1; i >= 0; i--) {
int bit1 = binary1.charAt(i) - '0';
int bit2 = binary2.charAt(i) - '0';
int sum = bit1 + bit2 + carry;
// 计算当前位的值和进位
int bit = sum % 2;
carry = sum / 2;
// 将当前位的值添加到结果字符串中
result.append(bit);
}
// 如果最高位有进位,则在结果字符串中添加 1
if (carry == 1) {
result.append("1");
}
// 反转结果字符串并输出
System.out.println("二进制表示:" + result.reverse().toString());
}
}
```
在上面的代码中,我们首先定义了两个二进制字符串 `binary1` 和 `binary2`,然后使用一个循环来补足 0,使两个二进制数位数相等。接着,我们创建一个 `StringBuilder` 对象 `result` 用来保存计算结果。然后,我们从最低位开始遍历这两个二进制数,逐位进行加法运算,并计算出当前位的值和进位。最后,如果最高位有进位,则在结果字符串中添加 1。最终,我们将结果字符串反转并输出二进制表示。
阅读全文