Warum int j = 012 gibt Ausgabe 10?

8

In meinem eigentlichen Projekt ist es versehentlich passiert, hier ist mein modifiziertes kleines Programm.

Ich kann nicht herausfinden, warum es Ausgabe 10 gibt?

%Vor%

Danach gebe ich zwei Nullen, die immer noch Ausgabe 10 geben.

Dann ändere ich 012 in 0123 und jetzt gibt es Ausgabe 83?

Kann jemand erklären, warum?

    
coder-croc 13.04.2014, 06:25
quelle

2 Antworten

19
  

Dann ändere ich 012 zu 0123 und jetzt gibt es Ausgang 83?

Weil es eine oktale Basis (8) ist, da diese Zahl 0 in der führenden Position hat. Also ist der entsprechende Dezimalwert 10

012:

%Vor%

0123:

%Vor%     
Abimaran Kugathasan 13.04.2014, 06:26
quelle
5

Die führende Null bedeutet, dass die Zahl als oktal und nicht als Dezimalzahl interpretiert wird.

    
Mark 13.04.2014 06:26
quelle

Tags und Links