Hexadezimalwert splitten
-
Hallo ich habe folgendes Problem und bin leider noch nicht auf die entsprechende Seite mit der Lösung gestoßen.
ich habe eine Variable int var. Der Inhalt sind 8 hexadezimalwerte welche aneinandergereiht wurden.
also printf("var: %x",var); ergibt var: ff00ff00 z.B.
ich benötige je 2 stellen der Hexwerte auf einer neuen Variablen. also
int var0 = 0xff;
int var1 = 0x00;
int var2 = 0xff;
int var3 = 0x00;leider habe ich kein ahnung wie ich und mit welchen operatoren ich das realisieren kann.
ich würde mich über eine antwort freuen.
vielen dank
-
Also zuerst einmal, bitte kein
printfin einem C++ Forum.printfist C, in C++ verwendet man für sowas die Streams.Zu deinem Problem:
Eine Hexadezimalziffer kann man genau mit 4 Bits ausdrücken. Mit 8 Bits und somit einem Byte kann man zwei Hexadezimalziffern ausdrücken. Ich hoffe es klingelt bereits.Deine
intVariable kannst du jetzt einfach aufteilen, mit den Bitschift-Operatoren. Vielleicht ein kurzes Beispiel, wie man zum Beispiel das 2. Byte auslesen würde, also 0xFF:int var = 0xFF00FF00; int temp = (var >> 8) & 0xFF;Wir schieben um 8 Bits, damit das erste Byte an der ersten Stelle ist. Dann stellen wir noch sicher, dass wir nur 8 Bits bekommen und der Rest auf 0 gesetzt wird.
Grüssli
-
Danke für die Hilfe! Entschuldigt den C Code
