Hallo, ich habe in 2 8 Bit Variablen (unsigned char) jeweils den High und den Low Teil einer 16 Bit Variable. Wie kann ich das zu einer 16 Bit Variable zusammenfügen. In Assembler gibt es ja meist den Befehl den höherwertigen Teil der Variable zu lasen. Gibt es so etwas in C auch? Viele Grüße
Paul schrieb: > Hallo, > ich habe in 2 8 Bit Variablen (unsigned char) jeweils den High und den > Low Teil einer 16 Bit Variable. Wie kann ich das zu einer 16 Bit > Variable zusammenfügen. In Assembler gibt es ja meist den Befehl den > höherwertigen Teil der Variable zu lasen. Gibt es so etwas in C auch? > Es gibt Fragen, die tauchen jeden 2.ten Tag auf :-) uint8_t LowByte; uint8_t HighByte; uint16_t result = ( HighByte << 8 ) | LowByte;
>uint16_t result = ( HighByte << 8 ) | LowByte;
Den Cast nicht vergessen:
uint16_t result = ( (uint16_t)HighByte << 8 ) | LowByte;
geht auch ohne, weil es dann als int gerechnet wird. Der cast stört aber auch nicht; sauberer sieht es m.E. tatsächlich mit aus.
Klaus Wachtler schrieb: > geht auch ohne, weil es dann als int gerechnet wird. > Der cast stört aber auch nicht; sauberer sieht es m.E. tatsächlich mit > aus. Würde ich mich nicht darauf verlassen, ich habs schon anders erlebt. Also lieber den Cast darein!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.