题目描述
计算两个二进制数的和或差。
输入
输入由两个二进制数和一个运算符组成,二进制数和运算符之间用一个空格分隔,格式如下:
num1 op num2
其中num1和num2为要参与运算的二进制数,二进制数只可能是大于零的无符号整数,且num1>=num2,op为运算符,运算符只可能取+或-;当num1和num2的长度不同时,在长度短的数的左侧补零,比如:
1000 - 1
将被视为
1000 - 0001
输出
运算结果,不能有多余的零。
样例输入复制
1011 + 1
样例输出复制
1100
代码如下:
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
String s=cin.nextLine();
String[] s4=s.split(" ");
//System.out.println(s4[1]);
String s1 = " |\\+|\\-";
String[] s2=s.split(s1);
for(int i=0;i<s2.length;i++) {
if (s2[i].equals("")) continue;
//System.out.println(s2[1]);
}
int a=Integer.parseInt(s2[0],2);
int b=Integer.parseInt(s2[3],2);
//System.out.println(a);
//System.out.println(b);
int c;
if(s4[1].equals("+")) {
c=a+b;
}else {
c=a-b;
}
String s3=Integer.toBinaryString(c);
System.out.println(s3);
}
}