从键盘输入两个正整数 n1和 n2,代表两个二进制数的位数,接下来两行输入长度分别为 n1 和 n2 的数组,数组元素为 0或者1(长度大于1 时,第一个元素必不为0),数组元素用空格隔开“Java实现
时间: 2023-06-20 07:10:29 浏览: 185
从键盘任意输入两个整数,输出两数之间的素数,素数判断用函数实现。 扩展要求:1)程序可以循环执行,判断完一组可以再进行下一组;可以设定一个特殊键退出
5星 · 资源好评率100%
```java
import java.util.Scanner;
public class BinaryAddition {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 输入两个二进制数的位数
int n1 = scanner.nextInt();
int n2 = scanner.nextInt();
// 输入长度为 n1 和 n2 的数组
int[] arr1 = new int[n1];
for (int i = 0; i < n1; i++) {
arr1[i] = scanner.nextInt();
}
int[] arr2 = new int[n2];
for (int i = 0; i < n2; i++) {
arr2[i] = scanner.nextInt();
}
// 将两个二进制数转换为十进制数相加
int sum = binaryToDecimal(arr1) + binaryToDecimal(arr2);
// 将十进制数转换为二进制数并输出
System.out.println(decimalToBinary(sum));
}
// 二进制转换为十进制
public static int binaryToDecimal(int[] arr) {
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i] * Math.pow(2, arr.length - i - 1);
}
return sum;
}
// 十进制转换为二进制
public static String decimalToBinary(int num) {
StringBuilder sb = new StringBuilder();
while (num > 0) {
sb.append(num % 2);
num /= 2;
}
return sb.reverse().toString();
}
}
```
阅读全文