Java-整数和二进制文件
尝试创建一个程序,在其中输入二进制数,然后以二进制形式再次得到这两个数的和。为什么代码不起作用Java-整数和二进制文件,java,binary,syntax-error,decimal,Java,Binary,Syntax Error,Decimal,尝试创建一个程序,在其中输入二进制数,然后以二进制形式再次得到这两个数的和。为什么代码不起作用 import java.util.Scanner; class ABC{ public static void main(String[] args){ Scanner toy = new Scanner(System.in); int x = toy.nextInt(); int y = toy.nextInt();
import java.util.Scanner;
class ABC{
public static void main(String[] args){
Scanner toy = new Scanner(System.in);
int x = toy.nextInt();
int y = toy.nextInt();
x = 0bx; y=0by; ------------> ERROR SHOWS UP
int z = x + y;
System.out.println(Integer.toBinaryString(z));
}
}
错误消息如下:
binary numbers must contain at least one binary digit
';' expected
理想的例子:
x = 101 (integer) --> x = 5 (binary meaning of 101)
y = 10 (integer) --> y = 2 (binary meaning of 10)
z = x + y = 5 + 2 = 7
return binary form of 7 (111)
如果希望将输入的数字解析为二进制,则应将其读取为
String
s,并以基数2解析为int
:
int x = Integer.parseInt(toy.next(),2);
int y = Integer.parseInt(toy.next(),2);
int z = x + y;
System.out.println(Integer.toBinaryString(z));
至于你的错误:
x = 0bx; y=0by;
不是有效的语法。
0b
前缀允许您输入将被视为二进制文字的数字文字(例如x=0b1001;
),但不能将其与变量组合 您编写了0bx
,如果成功的话,这是一个很好的编程技巧。事实并非如此,正如你自己所经历的那样
要了解原因,您需要知道您编写的代码首先作为一个整体进行解释,然后由编译器翻译成机器代码中的程序。原则上,编译器可以通过0bx
表达式了解您想要说什么。只是Java编程语言不允许这个表达式
它的意思类似于:
二进制文本由0b
编写,后跟0和1,至少一个,并且尽可能多
“文字”一词的意思是与字母相关的东西,“如书面形式”。因此,您不能使用编程语言的这一部分
但还有另一部分。方法Integer.parseInt
有两种变体:Integer.parseInt(“12345”)
将数字的十进制表示形式转换为该数字。变量Integer.parseInt(“101110101101”,2)
将一个数字的二进制表示形式解析为该数字
如果有一种方法
toy.nextInt(2)
,您可以使用它。否则,您必须使用Integer.parseInt(toy.next(),2)
典型的编程语言不允许您在语法方面如此有创意,它通常会完全模棱两可