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 👍


Log in to reply