high-byte / low-byte Anteil ausrechnen
-
Hi zusammen!
Ich soll gerade ein Pascal-Programm in VC++ umschreiben *stöhn*, und stehe gerade ziemlich auf dem Schlauch:
Das Programm kriegt in einer Funktion einen integer-wert, den es in high und low-anteil zerlegt.
Beispiel mit der zahl 5:
hi(5); high-anteil lo(5); low-anteil
Meine Frage ist, gibt es eine ähnliche Funktion in C++?
Wenn nicht, wie rechne ich selber den low-und den high-anteil einer zahl aus?Ist wahrscheinlich sehr einfach, aber irgendwie hab ich gerade `n Brett vor`m Kopf^^
Danke für Hilfe im voraus
-
Versuch's mal mit der klassischen Bit-Arithmetik:
short i=4711; char hi=i>>8; char lo=i&0xFF;
-
Ah, vielen dank
EDIT: Ok, hab gerade gesehen das es sich um einen longint handelt....macht das einen Unterschied? Also besteht der nicht aus mehr bit? (sorry, kein großen plan von datentypen^^).
-
Ja, Du musst anders als in Pascal dafür sorgen dass Du den Datentyp auch "richtig" halbierst
/* int = 4 Byte auf 32-bit-Systemen */ int val = 187264; short hi = val >> 16; short lo = val & 0x0000FFFF;
CStoll's Beispiel war "2-Byte-short halbieren"
-
Alles klar, danke!
-
Besser alles als unsigned nehmen