Guten Abend,
ich sitze jetzt schon 2 Stunden (eher 3 oder 4, aber ich will ja nicht so dumm dastehen
) an einem Problem. Ich habe einen Bitstrom der nach lsb, least significant bit (niederwertiges bit zuerst), geordnet ist.
Bei 2 Bit pro Symbol sieht das so z.B. aus:
LSB Fall:
2 1 3 0 -> 01 10 11 00
Was ich programmieren möchte ist die Umwandlung in msb, most significant bit (höherwertiges bit zuerst):
01 10 11 00 -> 10 01 11 00
Schritt 1:
Mein Gedanke war es den Bit-Strom in Symbole zu trennen und in einem Array zu schreiben:
01 10 11 00 -> 01
10
11
00
Schritt 2:
Danach wollte ich beide Spalten tauschen:
01 -> 10
10 01
11 11
00 00
Schritt 3:
Jetzt jede Zeile nacheinander einem Array einfügen:
10 -> 10 01 11 00 = MSB
01
11
00
1. Problem:
Mein Problem tritt bei Schritt 2 auf. Um beide Spalten vertauschen zu können, habe ich die Funktion "Aus Array löschen" genutzt. Dadurch erhalte ich 2 Arrays (2 Spalten = 2 Arrays). Ein Array ist 1-dimensional und das zweite 2-dimensional. Leider schaffe ich es nicht das 2-dimensionale Array in ein 1-dimensionales Array zu überführen.
2. Problem:
Sollte ich Problem 1 gelöst haben, würde ich nicht wissen wie am elegantesten ich Schritt 3 bewerkstelligen kann.
Einen weiteren Lösungsansatz hatte ich noch gefunden, der alles verkürzt. Durch die Funktion "1D-Arrays überführen", wollte ich mit Hilfe eines Schieberegister und dem Teil-Array (2-Bit Symbol) aus "Array Subset / Teil-Array" die Symbole nacheinander setzen. Ich wäre dann von meiner Theorie her gleich beim MSB angelangt.
Nur leider kommt beim Ausgang von "1D-Arrays überführen" nichts raus.
Ich hoffe ihr könnt mir wieder helfen.
Vielen Dank schon mal!