2012-04-10 15 views
1

Kann jemand erklären, warum es druckt 107 und nicht 153?Integer-Zuweisung in Java

+9

Weil '0153' eine Oktalzahl ist. – Lion

+0

@Lion hat Recht. Lesen Sie den Abschnitt "Integer Literals" der Java-Spezifikation hier: http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.1 – NullUserException

Antwort

2

Octal von 107 ist 0153

In Java Sie Oktal Literale einfach durch Hinzufügen einer führenden Null wie diese erstellen: int a = 0755; Achtung! Es ist sehr üblich, ein oktales Literal anzugeben

0

Da eine Zahl beginnend mit 0 als ein Oktalwert in Java betrachtet wird. 0153 in oktal ist 107 in dezimal.

0

Sie schreiben als Oktal und drucken standardmäßig auf Dezimal.

  Input       Prints (decimal) 

Decimal 153        153 
     ^
     No leading zero (digits 0-9) 

Octal 0153        107 
     ^
     leading zero (digits 0-7) 

Hex  0x153       339 
     ^^ 
     leading 0x (digits 0-F)