2016-04-19 4 views
-1

Почему значение напечатано не так же, как и вход? Направляющие нули меняют способ чтения целого числа?Ведущие нули в массиве Integer, ведущие к печатанию различных значений

Integer[] secondArray = {02,03,04,05,06,011,012,012,0123}; 

System.out.println("values:" + Arrays.toString(secondArray)); 

Выход: 2, 3, 4, 5, 6, 9, 10, 10, 83

+0

Что такое 'в восьмеричной 011'? Итак, да, у ведущего «0» есть смысл. – KevinO

ответ

3

ведущим нулем в целое число буквального в Java (и многих других языков) означает восьмеричный номер (основа 8).

So 011 - девять.

Другие системы, которые вы можете использовать, - hex (0x09, base 16) и двоичные (0b1001, начиная с Java7).

1

Целые числа с ведущим 0 обрабатываются как восьмеричные (базовые 8) цифры. Преобразование происходит следующим образом

Octal    Decimal 
06   ->  6 
07   ->  7 
08 (Not a valid octal number) 
09 (Not a valid octal number) 
010  ->  8 
011  ->  9 
012  ->  10 

и так далее