Aus 2 Bytes ein WORD machen; ohne MAKEWORD



  • Folgende Situation:

    Ich habe das LOWBYTE und das HIGHBYTE eines WORDS und möchte es zu einem WORD machen.
    Es gibt da das Makro MAKEWORD(LOWBYTE,HIGHBYTE), mit dem das funktioniert.
    Bevor ich das Makro kannte hab ich es so probiert:

    (unsigned short)((unsigned short)(cEndBuffer[1]*0x100)+cEndBuffer[0])=iWord
    

    Wobei cEndBuffer vom Typ char ist.
    Das funktionierte auch bis auf wenn cEndBuffer[0] und cEndBuffer[1] den Wert 0xFF hatten. Denn dann hatte iWord(vom Typ unsigned short) statt den von mir erwarteten Wert 0xffff den Wert 0xfeff. Warum passiert das? Mathematisch müsste ja 0xffff rauskommen. 😕



  • WORD test;
            test = (0xFF * 0x100) + 0xFF; /* (char[1] * 0x100) + char[0] */
    

    so muck ich dat und klappt och so bi mi


Anmelden zum Antworten