Forum: Compiler & IDEs Bits aneinanderhängen?


von Cha_KO (Gast)


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

von helmi (Gast)


Lesenswert?

a  = (a1 << 6) | a2;

von Uhu U. (uhu)


Lesenswert?

(a1 << 6) | a2

von Cha_KO (Gast)


Lesenswert?

Kann man damit auch mehrere Bitfolgen aneinander hängen, oder nur 2?

von Helmi (Gast)


Lesenswert?

a1=010101;
a2=111111;
a3=101011;

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

a = 111111010101101011

Gruss Helmi

von Cha_KO (Gast)


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...?

von helmi (Gast)


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

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.