Pourquoi “010” est égal à 8?

Ma simple question est de savoir pourquoi:

System.out.println(010|4);

imprime "12"? Je comprends opérateur de bits or mais pourquoi "010" est égal à 8? Ce n'est certainement pas un compliment 2 de la notification, de sorte comment décoder ce nombre?

C'est une octal littéral ! Plus précisément : 1*8^1 + 0*8^0 = 8 !

OriginalL'auteur Java Adept | 2013-07-04