www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Warum schreibt man HEX-Angaben mit einem 0x davor?


Autor: popi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lass die Präambel halt weg und schau was passiert.
Thomas

Autor: popi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

es ermöglicht dem Compiler zu erkennen was für eine Konstante jetzt
kommt. Gäbe es solche Präfixe nicht könntest du nur einen Typ
Konstanten verwenden.

Matthias

Autor: Jürgen Berger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo
das x steht für das x in hex, wie
das b in 0b... für binär steht.

Gruß
Jürgen

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: bebibaer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: popi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... das klingt alles gut und logisch!

Vielen Dank an Alle und liebe Grüße

popi

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist im Grunde einfach eine relativ willkürliche Sprachdefinition.
Warum nimmt man + für Plus und - für Minus ? Man hätte ja auch # für
Plus nehmen können und M für Minus.

Gruß Hagen

Autor: Klaus F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.