System.out.println()如何处理二进制数据?

时间:2015-07-07 06:25:06

标签: java binary system.out octal number-systems

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

包求;

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

有人可以解释一下吗?

2 个答案:

答案 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