Wie finde ich das most significant byte?



  • Hallo C++ - Cracks,

    Ich muss das most und das least significant byte aus einem usigned int
    extrahieren.
    Habe es mit folgendem code probiert:

    unsigned int crc16 = checksumFrame(&frame);
    char msb = *(((char *) &crc16));
    char lsb = *(((char *) &crc16) + 1);
    

    Was stimmt an diesem code nicht??

    vielen dank für eure hilfe.



  • unsigned int hat auf den meisten Systemen (meistens auch noch 32Bit Systeme), 4Byte. Außerem musst du den Endian deines Systems beachten.

    Und den Ausdruck

    *(((char *) &crc16))
    

    würde ich als

    reinterpret_cast<char &>(crc16)
    

    forumilieren. Das ist irgendwie deutlich übersichtlicher (meine Meinung, sollte aber klar sein).


Anmelden zum Antworten