Forum: Mikrocontroller und Digitale Elektronik Was passiert hier? temp<<=1;


von Unwissender (Gast)


Lesenswert?

Kann mir einer sagen was hier passiert:

    temp2<<=1;

Bin grade am Fuß fassen in C und das ist mir neu... Die Suchmaschinen 
spucken auch nie aus, da Sonderzeichen)

Ist das gleich :
temp2<<1;   ???

Danke für die Info.

von STK500-Besitzer (Gast)


Lesenswert?

>temp2<<1;   ???

nicht ganz.

Es ist so:
temp2 = temp2<<1;

>Die Suchmaschinen spucken auch nie aus, da Sonderzeichen)

Besorg dir "Die Programmiersprache C" von Kernighan&Ritchie
Da kann man auch mal nachschlagen...

von Unwissender (Gast)


Lesenswert?

Oh jetzt bin ich verwirrt...

das:
temp2<<1;   ???

ist doch gleich dem:
temp2 = temp2<<1;

oder?

Ich muss mir echt mal ein C-Buch holen...

Grüße

von Benedikt K. (benedikt)


Lesenswert?

Unwissender schrieb:
> das:
> temp2<<1;   ???
>
> ist doch gleich dem:
> temp2 = temp2<<1;
>
> oder?

Nein.

Probiers mal aus. Beim ersten wird der Compiler vermutlich irgendwas von 
sinnloser Anweisung bemängeln.
Ohne eine = wird das Ergebnis nach der Berechnung weggeworfen (falls der 
Compiler das nicht schon erkennt und daher die Berechnung wegoptimiert.)

von Unwissender (Gast)


Lesenswert?

Danke für die schnelle Hilfe.

Mein Compiler wirft zwar keine Fehlermeldung bei temp2<<1, aber mit 
temp2<<=1 klappt es auch im Simulator reibungslos. :-) Wieder was 
dazugelernt.

Grüße

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.