Warum schreibt man HEX-Angaben mit einem 0x davor?

Gast #280275
Lesenswert?

Hallo zusammen,

wer kann mir bitte erklären, was der Hintergrund der Abkürzung 0x als
"Präambel" vor einem HEX-wert bedeutet (bei C z.B.) oder eben $ bei
Assembler.

Steckt da etwas dahinter oder ist das einfach eine hintergrundlose
Absprache, aus der ein Assebmler bzw. ein Compiler erkennt, um was es
sich handelt?

Danke und Grüße

popi
Gast #280277
Lesenswert?

vermutlich wird das als dezimaler Wert interpretiert (kann jetzt leider
nicht mal auf die schnelle probieren)

Mir gehts aber nicht darum, ob ich es weglassen kann, sondern ob das 0x
für etwas besonderes steht, so wie I²C für Inter-Integrated Circuit
steht.

Also ob die Abkürzung aus einem tieferen Sinn abgeleitet wurde.

Grüße

popi
Gast #280280
Lesenswert?

Du kannst auch in Assembler schreiben 0xFF z.B. manche unterstützen auch
34h oder sowas, es sit einfach so der Compiler kann ja nicht raten was
du willst deswegen mußt du ihm einduetig sagen wie er die Zahl
interpretieren soll.

für Binär schreibt 0b011101, für hex halt 0x... dann kann man auf einen
blick unterscheiden was man vor sich hat.
Die 0 zeigt dem Compiler dabei warscheinlich an das eine Zahl folgt
(und kein String Literal).
Ich könnte mir auch vorstellen das das sone Art Wortlaut ist, so wie
X-Mas für Christmas, aber zero-X hm...
Gast #280281
Lesenswert?

Bei C-compilern fangen Dezimalzahlen mit den Ziffern 1 bis 9 an,
Oktalzahlen mit einer führenden 0. Daher bedeutet die Ziffernfolge 010
nicht zehn sondern acht. Bei Hexzahlen hat man ein x nach der 0
eingeschoben, sodass der lexikalische Scanner eine Zahlenkonstante im
Quelltext immer an einer führenden Ziffer erkennt, wenn man von
Vorzeichen absieht.
Motorola hat für Hexzahlen in ihren Assemblern $ benutzt, Intel/Zilog
ein angehängtes h, gegebenenfalls mit einer führenden 0, damit z.B. FFh
nicht als Symbol erkannt wird.
Gast #280284
Lesenswert?

Es ist halt ganz einfach die ANSI Norm für C Compiler.

Bereits um Standardwerk  "The C Programming Language"  von Kernighan
Ritchie  (Jahr 1979)  definiert.

Hingegen ist "0b" für binär nicht klar genormt.

Klaus
Beitrag #5319161 wurde von einem Moderator gelöscht.
Beitrag #5319166 wurde von einem Moderator gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren