HexNummer ändern?
-
Hallo!
Ich habe eine rein zufällige Nummer vom Typ long und betrachte diese im Hex Format: 0x1FE7184A
Nun möchte ich in dieser Nummer nur ein Byte verändern, z.B. 18 mit BB ersetzen, sodaß das Ergebnis 0x1FE7BB4A ist.
Wie kann ich das machen? Hilft mir das AND (&) oder irgend ein anderer Matheoperator?
Danke!
-
Wäre es nicht einfacher zu addieren? Gut, Rechenaufwand mag bei Bit-Ops geringer sein, aber was solls...
In Deinem Beispiel wäre:
0x1FE7184A + 0x00009300 = 0x1FE7BB4A
Zu einer Bitoperation fiele mir nur ein:
(0x1FE7184A & 0xFFFF00FF) | 0x0000BB00
(| ist oder)
-
oder (nur für little endian)
long a = 0x1fe7184a; ((char*)&a)[1] = 0xbb;
-
Addieren wird schwierig, da wie gesagt die Zahl rein zufällig ist. Somit weiß ich ja den Betrag nicht, der dazu addiert werden muss.
Mit AND funktioniert es!
Danke für die Hilfe!