Was bedeuten Zahlen in 0x-Notation?

Lesezeit: 2 Minuten

Benutzeravatar von Terry Li
Terry Li

Was tut ein 0x Präfix auf einer Zahl bedeuten?

const int shared_segment_size = 0x6400;

Es stammt aus einem C-Programm. Ich kann mich nicht erinnern, worauf es hinausläuft und insbesondere auf den Buchstaben x meint.

  • Suche nach “Hexadezimalschreibweise”

    – schief

    18. November 2011 um 18:11 Uhr

  • @asawer Danke. Bevor ich “0x” als hexadezimal abgeholt habe, hatte ich jedoch keine Ahnung, wo ich suchen sollte.

    – Terry Li

    18. November 2011 um 18:14 Uhr

  • Auf der Suche nach 0x prefix C++ bringt dich jetzt hierher 🙂

    – Carl Smith

    2. August 2018 um 22:23 Uhr

Benutzeravatar von Mystical
Mystisch

Literale, die mit beginnen 0x sind hexadezimale ganze Zahlen. (Basis 16)

Die Nummer 0x6400 ist 25600.

6 * 16^3 + 4 * 16^2 = 25600

Für ein Beispiel mit Buchstaben (auch in hexadezimaler Notation verwendet, wo A = 10, B = 11 … F = 15)

Die Nummer 0x6BF0 ist 27632.

6 * 16^3 + 11 * 16^2 + 15 * 16^1 = 27632
24576    + 2816      + 240       = 27632

  • Worüber ich mich gewundert habe, wie sollten negative Zahlen in Hex angegeben werden? Wie -0xff oder 0x-ff? Ich vermute das erste, aber ich weiß es nicht.

    – Luc

    23. Juli 2013 um 15:13 Uhr

  • @Luc Der erste ist richtig. Obwohl öfter sehe ich gerade 0xffffffff und derartige. (0xffffffff = -1 für 32-Bit-Int unter Annahme des Zweierkomplements)

    – Mystisch

    23. Juli 2013 um 16:30 Uhr

  • @Luc Negative Zahlen werden mit binär dargestellt 2er Komplement– ein cleverer Weg, der kein ‘-‘ Zeichen erfordert. Es wird also im Grunde genommen von binär in hexadezimal, negativ oder positiv, konvertiert.

    – Shuvo Sarker

    6. März 2020 um 21:05 Uhr

  • @ShuvoSarker Danke für die Ergänzung! Das ist jedoch nur die Speicherdarstellung, ich denke, ähnlich wie wenn wir uns darauf einigen würden, dass wir eine Reihe von Zahlen von 0 bis 999 haben und dass 1000 bis 1999 die negativen Zahlen darstellen würde. Meine Frage bezog sich auf von Menschen lesbare Notation, obwohl es jemand anderem helfen könnte, zu wissen, wie Computer dies tun, also danke 🙂

    – Luc

    7. März 2020 um 10:07 Uhr


  • Sie müssen diese Antwort korrigieren. Der erste Satz ist extrem irreführend. Literale, die mit beginnen 0x können natürlich auch IEEE 754-Gleitkommawerte sein, wie in hexadezimaler Exponentialschreibweise. Ihre Antwort würde etwas anderes vermuten lassen und verdient derzeit eine Ablehnung.

    – Excel-Held

    30. Mai um 14:43 Uhr

Prost und hth.  - Alfs Benutzeravatar
Prost und hth. – Alf

In C und Sprachen, die auf der C-Syntax basieren, das Präfix 0x bedeutet hexadezimal (Basis 16).

Also 0x400 = 4×(162) + 0×(161) + 0×(160) = 4×((24)2) = 22 × 28 = 210 = 1024 oder ein binäres K.

Also 0x6400 = 0x4000 + 0x2400 = 0x19×0x400 = 25K

Benutzeravatar von knittl
gestrickt

Es ist eine Hexadezimalzahl.

0x6400 entspricht 4*16^2 + 6*16^3 = 25600

Die Nummern beginnen mit 0x sind hexadezimal (Basis 16).0x6400 repräsentiert 25600.

Umwandeln,

  • Multiplizieren Sie die letzte Ziffer mit 1
  • vorletzte Ziffer mal 16 addieren (16^1)
  • addiere die drittletzte Ziffer mal 256 (16^2)
  • addiere die viertletzte Ziffer mal 4096 (16^3)
  • …usw

Die Faktoren 1, 16, 256 usw. sind die steigenden Potenzen von 16.

0x6400 = (0*1) + (0*16^1) + (4*16^2) + (6*16^3) = 25600 

oder

0x6400 = (0*1) + (0*16) + (4*256) + (6*4096) = 25600 

Benutzeravatar von loyola
Loyola

EINFACH

Es ist ein Präfix, um anzuzeigen, dass die Zahl hexadezimal und nicht in einer anderen Basis ist. Die Programmiersprache C verwendet es, um es dem Compiler mitzuteilen.

Beispiel :

0x6400 wird übersetzt in 6*16^3 + 4*16^2 + 0*16^1 +0*16^0 = 25600. Wenn der Compiler liest 0x6400, Es versteht, dass die Zahl mit Hilfe des Begriffs 0x hexadezimal ist. Normalerweise können wir verstehen (6400)16 or (6400)8 oder irgendeine basis ..

Hoffnung hat irgendwie geholfen.

Schönen Tag,

1424370cookie-checkWas bedeuten Zahlen in 0x-Notation?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy