Bit Shift left (1<<PA0)

Gast #2323623
Lesenswert?

Die Frage Hab ich schon seit Ewigkeiten...


Um ein Bit zu setzen verwendet man:

(1<<PA) in Kombination mit einem &

Ein kleines Beispiel das in C und Pascal die selbe Wirkung hat:

b entspricht 0x00;
PA0 entspricht 0x00;

C:
1
b |= (1<<PA0);

Pascal:
1
b := b or (1 shl PA0);

Warum wird hier eine 1 nach links verschoben und nicht eine 0 eingerückt 
wie im Bild?


Schonmal im Voraus vielen Dank an die ganzen Personen die mir hier schon 
geholfen haben!
Angehängte Dateien:
#2323663
Lesenswert?

Simon schrieb:
> Um ein Bit zu setzen verwendet man:
>
> (1<<PA) in Kombination mit einem &

nein, in Verbindung mit einem ODER (|).

Simon schrieb:
> Warum wird hier eine 1 nach links verschoben und nicht eine 0 eingerückt
> wie im Bild?

Wenn man eine 1 (oder was auch immer) nach links schiebt, werden von 
rechts Nullen eingefügt.

Würdest du eine 0 nach links schieben, hättest du die geschobene Null 
und die von rechts eingeschobenen Nullen, also lauter Nullen.

Deshalb verschiebt man die 1. Im Ergebnis hat man die anfangs rechts 
stehende 1, entsprechend nach links geschoben, und die von rechts 
eingefügten Nullen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren