Bitmanipulation, Schieberegister - Verständnisfrage

Gast #1636939
Lesenswert?
• ▲
▼
Hi,

ich habe eine Verständnisfrage:


Im Tutorial http://www.mikrocontroller.net/articles/Bitmanipulation
steht geschrieben:


<< = Links schieben (Bsp: a<<b ist das gleiche wie a * 2^b)


desweiteren steht dort geschrieben:

#define MEINBIT0 0
#define MEINBIT1 1
#define MEINBIT2 2
PORTB |= ((1 << MEINBIT0) | (1 << MEINBIT2)); // setzt Bit 0 und 2 in 
PORTB auf "1"

(1 << n) : Zuerst wird durch die '<<'-Ausdrücke eine "1" n-mal nach 
links geschoben. Dies ergibt somit (in Binärschreibweise) 0b00000001 für 
(1 << MEINBIT0) und 0b00000100 für (1 << MEINBIT2).


Aber die Beiden Verfahren sind doch nicht gleich, rechne ich nach dem 1. 
Beispiel:

1*2^0 | 1*2^2
somit wäre Bit 1 und Bit 4 betroffen, nicht Bit 0 und Bit 2

Kann mir jemand auf die Sprünge helfen?

Danke,

gruß Stefan
Gast #1636947
Lesenswert?
• ▲
▼
Stefan schrieb:
> 1*2^0 | 1*2^2
> somit wäre Bit 1 und Bit 4 betroffen, nicht Bit 0 und Bit 2
>
> Kann mir jemand auf die Sprünge helfen?

Es sind Bit 0 und 2 betroffen,
Bit 2 hat aber den Wert 4 ( dezimal ), das ist dein Fehler.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.