So verwenden Sie Hex mit Binary für C-Programmierung

Face it: Niemand, nicht einmal ein C-Programmierer will Bits in eine binäre Zahl zu zählen. Niemand. Vielleicht irgendwo einige Nerd kann Ihnen sagen, dass 10110001 wirklich der Wert 177, aber die meisten Programmierer nicht. Was kann ein guter Programmierer, aber tun, ist binär in hex übersetzen.

Hex hat nichts mit Harry Potter zu tun. Es ist die Abkürzung für hexadezimal, Das ist die Basis 16 Zählsystem. Das ist nicht so stumpf wie es klingt, weil es einfach ist, zwischen der Basis 16 (hex) und binär zu übersetzen.

Zum Beispiel übersetzt der Wert 10110001 in B1 hexadezimal. Hexadezimalzahlen sind die Buchstaben A bis F, was Dezimalwerte 10 bis 15 sind. EIN B in Hex ist der Dezimalwert 11. Letters verwendet werden, weil sie nur ein Zeichen Raum einnehmen.

Hier sind die 16 hexadezimalen Werten von 0 bis F und wie sie sich auf vier Bits von Daten:

VerhexenBinärDezimalVerhexenBinärDezimal
0x0000000x810008
0x1000110x910019
0x2001020xA101010
0x3001130xB101111
0x4010040xC110012
0x5010150xD110113
0x6011060xE111014
0x7011170xF111115

Diese Hexadezimalwerte werden mit dem Präfix 0x. Dieses Präfix ist üblich, in C, obwohl auch andere Programmiersprachen verschiedene Präfixe oder ein Postfix verwenden.

Der nächste hexadezimalen Wert nach 0xF ist 0x10. Sie lesen es nicht als die Nummer zehn, sondern als # 147-one Null hex. # 148- Es ist der Wert 16 in dezimal (Basis 10). hex hält mit 0x11, 0x12, und nach oben durch 0x1F Zählen und darüber hinaus Danach werden.

Ja, und all das ist genauso viel Spaß wie die alten ägyptischen Zählen Symbole Lernen, also wo wird es Ihnen?

Wenn ein Programmierer den binären Wert sieht 10110100, er teilt sich zunächst in zwei 4-Bit Nibbles: 1011 0100. Dann hat er es in hex übersetzt, 0xB4. Die Programmiersprache C funktioniert die Übersetzung als auch, solange Sie die% x oder% X-Umwandlung Zeichen verwenden, wie es in einem kleinen Hex gezeigt.

EIN WENIG HEX

#include char * binbin (int n) -int main () {int b, xb = 21 für (x = 0-XLT; 8-x ++) {printf ( "% s 0x% 04X% 4d n", binbin (b), b, b) -blt; lt; = 1} return (0) -} char * binbin (int n) {static char bin [17] -int x-for (x = 0-XLT; 16 -x ++) {bin [x] = n 0x8000? '1': '0'-n lt; lt; = 1} bin [x] = ' 0'-return (bin) -}

Der Code in einem kleinen Hex zeigt einen Wert in binär, hexadezimal und dezimal und verschiebt dann diesen Wert auf der linken Seite, um den neuen Wert anzuzeigen. Dieser Prozess findet in Zeile 13 durch die% X-Umwandlung Zeichen in der printf () Anweisung.

Nun, eigentlich ist der Platzhalter% 04X, die Hex-Werte unter Verwendung von Großbuchstaben angezeigt, vier Ziffern breit und mit Nullen auf der linken Seite aufgefüllt, wie gebraucht. Das Präfix 0x vor dem Umwandlungszeichen zeigt lediglich die Ausgabe in Standard-C-Stil.

Übung 1: Starten Sie ein neues Projekt den Code von einem kleinen Hex verwenden. Erstellen und ausführen.

Übung 2: Ändern Sie den Wert der Variablen b in Zeile 9 auf diese Weise zu lesen:

b = 0x11-

Speichern Sie diese Änderung, und bauen und zu betreiben.

Sie können Hex-Werte direkt im Code schreiben. Prefix die Werte mit 0x, durch eine gültige hexadezimale Zahl gefolgt entweder Groß- oder Kleinbuchstaben, wo erforderlich.

Menü