mikrocontroller.net

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


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jens123 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Olaf Stieleke (Gast)
Datum:

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

Autor: dave (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

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.