Forum: Mikrocontroller und Digitale Elektronik einzelne bits in einem Byte vertauschen


von Peter (Gast)


Lesenswert?

Hallo,

ich  habe da eine Frage, ich müsste in aus 2 Bytes die Bits
untereinander vertauschen. gibt es da eventuell in C eine einfache
möglichkeit dies zu tun ohne das Byte komplett zu zerlegen und wieder
zusammenzubauen?

Folgendes Beispiel:

ich habe 2 Bytes

           ABCDEFGH
Byte 1: b  01101010

           IJKLMNOP
Byte 2: b  00000011

und aus diesen 2 Bytes möchte ich die Bits wie folgt kombinieren

Byte 3: b  _CGDFOPH


danke im vorraus

von Jens123 (Gast)


Lesenswert?

Versteh ich nicht ganz, was du meinst
aver schau im wiki mal nach bitmanipulation, wenn du wissen willst,
welche bits in 2 bytes 1 ist
also:

b1 01010101
b2 10101000 (oder)
b =11111101

b1 01010101
b2 10101111 (und)
b =00000101

Villeicht hilfts

MFG Jens

PS: das hist ist der falsche platz setz es beim naegstenmal in µC und
Elektronik rein

von Olaf Stieleke (Gast)


Lesenswert?

Man könnte das ganze auch übers T-Flag per BLD/BST machen.

von dave (Gast)


Lesenswert?

also erstmal das erste byte in ein anderes kopieren...(das ziel byte
dann)
dann mit
AND 00010001 ==> - - - D - - - H
BST byte1, 1
BLD ziel, 5  ==> - - G D - - - H
BST byte1, 2
BLD ziel, 3  ==> - - G D F - - H
BST byte1, 5
BLD ziel, 6  ==> - C G D F - - H
ANDI byte2, 3 ==> -------OP
LSL byte2     ==> ------OP-
OR ziel, byte2 ==> - C G D F O P H

ich hoffe, ich ahb keinen fehler gemacht...kostet 10 takte in
assembler, welchen du ja schön in c einfügen kannst ;)

dave

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.