int to bytes
-
Hi!
Ich wollte ein unsigned int in vier unsigned char's haben.
Da hab ich das gefunden:byte1 = deinInteger & 0xFF; byte2 = deinInteger>>8 & 0xFF; byte2 = deinInteger>>16 & 0xFF; byte2 = deinInteger>>24 & 0xFF;Aber geht das nicht auch SO:
byte1 = deinInteger & 0x000000FF; byte2 = deinInteger & 0x0000FF00; byte2 = deinInteger & 0x00FF0000; byte2 = deinInteger & 0xFF000000;Was wäre denn daran falsch?
Und gibt es Unterschiede bei int/unsigned int und char/unsigned char?Und dazu noch eine Frage:
Bleibt das Ergebnis solcher Bitoperatoren immer gleich, wenn man es unter Windows ausführt?
Ist es egal, ob das 32bit (x86?) kompilierte Programm auf einem x86, x86-64, x64, amd64, IA64 oder sonstwo läuft?Danke schonmal!
-
Was wäre denn daran falsch?
Und gibt es Unterschiede bei int/unsigned int und char/unsigned char?Google doch mal danach...
-
Habe ich. Bin vllt. zu dumm.
-
Convert0r schrieb:
Aber geht das nicht auch SO:
byte1 = deinInteger & 0x000000FF; byte2 = deinInteger & 0x0000FF00; byte2 = deinInteger & 0x00FF0000; byte2 = deinInteger & 0xFF000000;Nein, damit löscht Du nur Bits und byte2 bis byte4 werden zu 0. Außerdem denke ich dass du noch einen cast brauchst sonst beschwert sich der Compiler
-
Achsoooo ich Dumpfbacke, verstehe schon.
Es werden nur die niederwertigsten Bits kopiert (Bis auf die Größe der Variable, zu der zugewiesen wird), neh?Bleibt noch die Frage zu signed/unsigned und die letzte Frage.