Java中的基本转换

时间:2018-12-09 11:44:07

标签: java base

int a=012;
int b=13;
System.out.println(a+b);

打印的结果是23,因此其中一个必须已以另一种基本格式声明。这是哪一个,为什么?

3 个答案:

答案 0 :(得分:4)

那是因为您的变量a以8为底,所以a是0 * 8 ^ 2 + 1 * 8 ^ 1 + 2 * 8 ^ 0(^表示幂),所以a = 10(十进制),这就是为什么您的答案是23。

如果希望它以10为底,只需删除a=012中的0。

答案 1 :(得分:1)

好吧,您可以通过以下简单的方法轻松测试该数字以10为底的数字:

System.out.println(Integer.toString(a,10)); // print in the console

其余所有内容均由E. Armand很好地解释。如何将base8数字转换为base10。

答案 2 :(得分:0)

int a = 012;  // first '0' means that this number is octal (=10 in decimal)
int b = 13;
System.out.println(a+b);  // 012 + 13 = 10 + 13 = 23.

要更改输出,请使用Integer.toString(int i, int radix)

System.out.println("binary: 0b" + Integer.toString(a + b, 2)); // binary: 0b10111
System.out.println("octal: 0" + Integer.toString(a + b, 8));   // octal: 027
System.out.println("dec: " + Integer.toString(a + b, 10));     // dec: 23
System.out.println("hex: 0x" + Integer.toString(a + b, 16));   // hex: 0x17