为什么这个数组的输出与存储在它中的值不同?

时间:2014-02-01 23:32:10

标签: java arrays printing

我有一个存储一系列数字的数组,如下所示:

static final int CodeArray[] ={
            11, 
            011,
            0011,
            1011,
            00011,
            10011,
            01011,
            000011,
            100011,
            010011,
            ...
                            } 

但是当我访问值(使用for循环)时,它返回以下内容:

11
9
9
1011
9
10011
521
9
100011
4105

为什么打印的值与存储的值存在差异?

2 个答案:

答案 0 :(得分:4)

因为在数字前加0会将其转换为八进制表示,而不是二进制表示。

因此,例如,011是十进制9的八进制,这就是打印的内容。

请参阅this SO question以了解如何使用Java中的二进制数。

答案 1 :(得分:0)

011被视为八进制而非十进制