我无法理解以下代码的输出
包求;
import java.util.*;
import java.io.*;
public class Hell
{
public static void main(String[] args)
{
System.out.println(10+010); //Prints 18
System.out.println(010+010); //Prints 16
System.out.println(010+10); //Prints 18
}
}
有人可以解释一下吗?
答案 0 :(得分:4)
当你写 010
时,其八进制代码 ... 不是二进制
System.out.println(10+010);
System.out.println(010+010);
System.out.println(010+10);
以上这些行相当于:
System.out.println(10+8); // 010 being code for 8
System.out.println(8+8);
System.out.println(8+10)
答案 1 :(得分:0)
这不是二进制数的八进制数的总和。在由0开始的java编号是八进制。输出是十进制的。
010 = 8。
System.out.println(10+010);
10 + 8
System.out.println(010+010);
8 + 8
System.out.println(010+10);
8 + 10