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
lass die Präambel halt weg und schau was passiert. Thomas
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
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
hallo das x steht für das x in hex, wie das b in 0b... für binär steht. Gruß Jürgen
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...
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.
... das klingt alles gut und logisch! Vielen Dank an Alle und liebe Grüße popi
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
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.