Forum: Mikrocontroller und Digitale Elektronik Anweisung in C-Sparache


von alpacino (Gast)


Lesenswert?

ich hab drei Variablen, und ich will die 2 byte Variavlen in die 16 Bits 
Variable kopieren.

uint16_t  Var1;
uint8_t  Var2_Low;
uint8_t  Var3_High;

wie geht s die Anweisung in C-Sprache?

von ARM-Fan (Gast)


Lesenswert?

Var1 = ((uint16_t)Var3_High << 8) | Var2_Low;

von alpacino (Gast)


Lesenswert?

ist es nicht so:
Var1 = ((uint16_t)Var3_High >> 8) | Var2_Low;

??

von Karl H. (kbuchegg)


Lesenswert?

alpacino wrote:
> ist es nicht so:
> Var1 = ((uint16_t)Var3_High >> 8) | Var2_Low;
>

Was wird wohl passieren, wenn du bei einer 8 Bit Variable
die 8 Bit nach rechts schiebst?

von Johannes M. (johnny-m)


Lesenswert?

Wenn Du Deine 8-Bit-Variable um 8 Stellen nach rechts schiebst, fällt 
alles, was vorher an Inhalt drin war, rechts raus. Da kannste auch 
gleich "0" hinschreiben... ARM-Fan liegt schon richtig.

von alpacino (Gast)


Lesenswert?

ja ja stimmt,ich bin vieleicht besoffen ;-)

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
Noch kein Account? Hier anmelden.