Witajacie! Mam pytanie:
-mam ciag r*k bitow generowanych pseudolosowo;
-co kazde r bitow mam wstawic 8 zer i uzyskac ciag nr 2 o dlugosci (r+8)*k botow (potrzebne do kodowania splotowego)
Jak to zrobic ?? :))
Witajacie! Mam pytanie:
-mam ciag r*k bitow generowanych pseudolosowo;
-co kazde r bitow mam wstawic 8 zer i uzyskac ciag nr 2 o dlugosci (r+8)*k botow (potrzebne do kodowania splotowego)
Jak to zrobic ?? :))
skorzystaj z bitset w STL ułatwi ci to prace
bitset tu nie pasuje, bo nie może zmieniać swojego rozmiaru. lepszy by był:
std::vector<bool> a;
jednak należy pamiętać, że ten szablon dla argumentu bool ma szczególną specjalizację, w której 8 bitów zapisywana jest w jednym bajcie. więc nie można pozyskać adresu do pojedynczej wartości.
mój artykuł, klasa operująca na pojedynczych bitach w tablicy, klasa udaje, że jest tablicą bitów :> taki wynalazek, może ci pomoże
EDIT: jeżeli musisz także zmieniać rozmiary tablicy jak vector, dopisz sobie to tej klasy metodę relokujacą i po problemie
Nie babrałbym się w bitserty. 8 bitów to bajt. Czyli każdy bajt pseudolosowych bitów może zamienić się na wielokrotność bajta. Dajmy na to chcesz wstawić 8 zerowych bitów za n-tym bitem danych.