给你两个二进制字符串,返回它们的和(用二进制表示)。
输入为 非空 字符串且只包含数字 1 和 0。
示例 1:
输入: a = "11", b = "1"
输出: "100"
示例 2:
输入: a = "1010", b = "1011"
输出: "10101"
import java.util.Scanner;publicclassBinarySummation{publicstaticvoidmain(String[] args){
Scanner sc =newScanner(System.in);
System.out.println("输入第一个二进制整数:");
String a = sc.nextLine();
System.out.println("输入第二个二进制整数:");
String b = sc.nextLine();
String c ="";if(a.length()> b.length()){
c = a;}else{
c = b;}for(int i =0; i <= c.length()-1; i++){if((a.charAt(i)=='0'|| a.charAt(i)=='1')&&(b.charAt(i)=='0'|| b.charAt(i)=='1')){break;}else{
System.out.println("输入格式错误!请重新输入:");
System.out.println("输入第一个二进制整数:");
a = sc.nextLine();
System.out.println("输入第二个二进制整数:");
b = sc.nextLine();}}int i1 = Integer.parseInt(a,2);//把2进制数转成10进制数int i2 = Integer.parseInt(b,2);int i3 = i1 + i2;//十进制数求和int i4 =binaryToDecimal(i3);//将求和的结果转成二进制数
System.out.println(i4 +"");}publicstaticintbinaryToDecimal(int n){int t =0;//用来记录位数int bin =0;//用来记录最后的二进制数int r =0;//用来存储余数while(n !=0){
r = n %2;
n = n /2;
bin += r * Math.pow(10, t);
t++;}return bin;}}