Heim > Backend-Entwicklung > C++ > Warum wird „0123' in C/C als „83' gedruckt?

Warum wird „0123' in C/C als „83' gedruckt?

DDD
Freigeben: 2024-11-14 18:24:02
Original
978 Leute haben es durchsucht

Why does

Numerische Konstanten mit führenden Nullen in C/C verstehen

In C/C kann numerischen Konstanten eine führende „0“ vorangestellt werden. um ihre Basis oder ihr Zahlensystem anzugeben. Dieses Präfix bedeutet, dass die Konstante ein Oktalwert (Basis 8) ist.

Wenn Sie „0123“ als Ganzzahlkonstante verwendet haben, interpretiert der Compiler sie als Oktalwert. Im oktalen Zahlensystem stellt „123“ den Dezimalwert 83 (881 3) dar. Daher wird beim Drucken des Werts 83 statt 123 ausgegeben.

Dieses Verhalten ist bei allen C- und C-Compilern wie GCC konsistent. Dies gilt auch für Gleitkommakonstanten mit dem Präfix „0“, obwohl die Konvertierungsregeln geringfügig abweichen können.

Um die Basis einer numerischen Konstante explizit anzugeben, können Sie die folgenden Präfixe verwenden:

  • '0': Oktal (Basis 8)
  • '0x' oder '0X': Hexadezimal (Basis 16)
  • Kein Präfix: Dezimal (Basis 10)

Um beispielsweise den Dezimalwert 123 als Oktalkonstante darzustellen, würden Sie „0123“ verwenden. Umgekehrt würden Sie 83 verwenden, um den Oktalwert 83 als Dezimalkonstante darzustellen.

Das obige ist der detaillierte Inhalt vonWarum wird „0123' in C/C als „83' gedruckt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage