0

我无法理解以下代码的输出

包乞求;

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
    }
}

有人可以解释一下吗?

4

2 回答 2

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)
于 2015-07-07T06:27:16.637 回答
0

这不是二进制的八进制数的总和。在java中以0开头的数字是八进制的。并且输出是十进制的。

010 = 8。

System.out.println(10+010); 

10 + 8

System.out.println(010+010);

8 + 8

System.out.println(010+10); 

8 + 10

于 2015-07-07T06:28:25.493 回答