Poszukuję wydajnego algorytmu w C, aby przetransferować bitowo 8 bajtów danych. Co mam na myśli to, że jeśli mam 8 bajtów tak:Bitowa transpozycja 8 bajtów
00011100
00111000
00000001
00000000
11000000
00000000
11111111
01010101
Chcę uzyskać następujące 8 bajtów:
00001010
00001011
01000010
11000011
11000010
10000011
00000010
00100011
A ponieważ chcę użyć to w osadzonym platformy, powinno być tak szybko jak to możliwe :-)
Wszystkie pomysły są doceniane!
Co to oznacza? Nie widzę zależności między wejściem a pożądanym wyjściem. Czy chcesz użyć prostej (256 bajtowej) tablicy odnośników? –
@Richard: To transpozycja macierzy; wiersz staje się kolumnami i odwrotnie. Jeśli przeczytasz kolumnę po lewej stronie wyniku, będzie ona równa pierwszemu wierszowi danych wejściowych. Ponieważ istnieje 64 niezależne bity wejściowe, tabela przeglądowa staje się ... duża. – unwind
Kolumny uzyskują wiersze i odwrotnie. – tur1ng