www.mikrocontroller.net

Forum: Compiler & IDEs Bits aneinanderhängen?


Autor: Cha_KO (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo...angenommen ich habe zwei Bitfolgen:

a1=010101
und a2=111111;

wie verknüpfe ich diese jetzt in C zu einer Bitfolge, in dem Beispiel 
also
a=010101111111?

Cha_KO

Autor: helmi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
a  = (a1 << 6) | a2;

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(a1 << 6) | a2

Autor: Cha_KO (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann man damit auch mehrere Bitfolgen aneinander hängen, oder nur 2?

Autor: Helmi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
a1=010101;
a2=111111;
a3=101011;

a = (a1 << 6) | (a2 << 12) | a3;

a = 111111010101101011

Gruss Helmi

Autor: Cha_KO (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke...geht dieser Befehl unendlich weit? weil ich lasse solche in 
Bitmuster auf einer LED Matrix ausgeben und ab 15 Zeichen verschluckt er 
den Rest bei mir und gibt es nicht mehr aus...?

Autor: helmi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das geht nur soweit wie deine Variable bits hat.
Also bei einer long mit 32 Bit kann man nur 32* schieben.
Wenn er bei Dir ab der 15 Stelle sich verschluckt dann hast du als 
Variable eine 16 Bit Integer genommen. Mit einer long kämmst du dann 
doppelt so weit. Wenn du noch mehr willst dann müstes du ab der 32 
Stelle die überlaufenden Bits in eine nächste Variable speichern.

Gruss Helmi

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.