Hallo, ich habe folgendes Problem, ich habe ein 8 Bit Datenwort, ich will aber nur jedes 2 Bit in einer Variablen Speichern. z.B. Daten=01010101, ich will jedes zweite Bit speichern, hintereinander Daten2=00001111. Ich muss also jedes zweite Bit in meine zweite Variable schieben, aber wie? Vielen Dank
Gast
#1236640
Warum willst du jedes zweite Bit hintereinander speichern?
Gast
#1236646
Daten2 = (Daten & 0x01) | ((Daten >> 1) & 0x02) | ((Daten >> 2) & 0x04) | ((Daten >> 3) & 0x08); Man könnte es auch mit einer Schleife realisieren...
Gast
#1236650
>Warum willst du jedes zweite Bit hintereinander speichern?
Ist doch egal, oder?
Warum fährt der Mensch zum Mond oder sucht in Lichtjahren entferneten
Galaxien nach Leben?
Gast
#1236652
Stichwort Manchester ?
z.B.:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
ok, zu langsam
Vielen Dank schonmal für die Antworten. Wie würde es denn mit einer Schleife realisiert werden? Zu diesen 4Bits kommen später nochmal 4Bits dazu, die Oder-Verknüpft werden. Deshalb hintereinander.
Gast
#1236661
@Klaus: Danke für die Bestätigung. @Patrick: Die Schleife kannst du dir selber überlegen... ;)
> Wie würde es denn mit einer Schleife realisiert werden?
Warum auf Biegen und Brechen umständlicher und langsamer machen?
Gast
#1236667
>Ist doch egal, oder? Nicht unbedingt. Wenn man mehr über das Problem weiß, gibt es evtl. bessere Ansätze. >Stichwort Manchester ? Wenn es um eine RC5 Dekodierung geht, das geht auch komplett anders.
Tabelle.
Informatikhausaufgabe?
Gast
#1236698
mask<<=2;
Ist eine SPI Übertragung von 16 Bit, brauche aber nur jedes zweite Bit. Es werden erst 1*8Bit übertragen, von diesen 8Bit brauche ich aber nur 4Bit(jedes zweite), dann nochmal 8Bit, von denen ich auch nur 4Bit brauche(jedes zweite), diese werden jeweils in einer Variablen gespeichert,danach werden diese 2*4Bit wieder zusammen in eine Variable geschrieben. Und dann ausgegeben. Daten1=00001111 Daten2=11110000 Wert=Daten1|daten2 so ist es mal angedacht:-)
ok, aber dann schiebt man die zweiten Daten aber hoffentlich nicht wie oben nach rechts, um sie dann wieder um 4 nach links zu schieben, sondern analog gleich nach links...
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.