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.
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.
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. – 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
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,
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
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,
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