Witam
Jak zrealizowac zamiane ciagu bitów np. 1011, aby je rozłazyc na pojedyncze 1,0,1.,1
___
I I- 1
1011 - I- 0
I I - 1
I___I - 1
to ma byc cos takiego
Zamiana ciagu bitów na pojedyncze
Re: Zamiana ciagu bitów na pojedyncze
Nie napisałeś jaki to procek i w czym programujesz, więc rozważania są typu asemblerowego a procek jest nieistotny.eseq pisze:Witam
Jak zrealizowac zamiane ciagu bitów np. 1011, aby je rozłazyc na pojedyncze 1,0,1.,1
___
I I- 1
1011 - I- 0
I I - 1
I___I - 1
to ma byc cos takiego
Rozwiązań jest dużo. Najprostszym jest rozwiązanie następujące:
1. wpis danych do rejestru
2. przesunąć zawartość rejestru w lewo lub w prawo (zależy czy chces mieć te bity od lewej czy od prawej strony) z zapamiętaniem "traconego" bitu we wstaźniku C (każdy proc ma taką instrukcję),
3. jeżeli wskaźnik jest ustawiony, to była jedynaka, jeżeli nie, to było zero (testuje się to instrukcją skoku warunkowego w zależności od stanu wskaźnika C- to też ma każdy procek)
4. do obróbki następnego bitu wracasz do punktu 2. (i tak 8 razy)
-
Kapitan_Rzbik
- -
- Posty: 97
- Rejestracja: 20 gru 2005, 10:52
W C bedzie to tak:
Pozniej wystarczy odczytac kazdy bit z tablicy, np bit zerowy czytamy z zerowej komorki tablicy.
Kod: Zaznacz cały
const int N=8; //liczba bitow do odczytania
int i; //licznik
int bit_f; //liczba z interesujacymi nas bitami
int bit_t[N]; //tablica bitow
for(i=0;i<N;i++)
bit_tab[i]=(bit_f>>i) & 0x01;