Heim > Artikel > Backend-Entwicklung > Warum ist „0123“ in C/C gleich 83?
Numerische Konstantenpräfixe in C/C verstehen
Beim Schreiben numerischer Konstanten in C/C haben die vor den Zahlen verwendeten Präfixe eine wichtige Bedeutung Dies kann den interpretierten Wert verändern. Ein solches Präfix ist „0“, das eine oktale Konstante (Basis 8) darstellt.
Stellen Sie sich den Fall vor, in dem die numerische Konstante „0123“ einer ganzzahligen Variablen zugewiesen wurde. In der Basis 10 (dezimal) würde dieser Wert tatsächlich 123 darstellen. Da ihm jedoch „0“ vorangestellt ist, wird er als Oktalkonstante interpretiert.
In der binären Darstellung einer Oktalziffer hat jede Ziffer ein bestimmter Wert:
Da „0123“ eine Oktalkonstante ist, können wir jede Ziffer in ihr binäres Äquivalent umwandeln:
Wenn wir diese Binärziffern verketten, erhalten wir: 000001001011. Die Konvertierung in die Basis 10 (Dezimalzahl) ergibt den Wert 83.
Wenn also eine numerische Konstante in C/ C wird eine „0“ vorangestellt, es bedeutet eine Oktalkonstante und der Wert wird interpretiert entsprechend. Dieses Verhalten ist sowohl in C als auch in C mit dem GCC-Compiler und sogar für Gleitkommakonstanten konsistent.
Das obige ist der detaillierte Inhalt vonWarum ist „0123“ in C/C gleich 83?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!