Ktoś ma pomysł jak napisać kolejkę 8 bitową? Ma to wyglądać tak:
Mamy 1 w zapisie 8 bitowym 00000001, następnie przesuwa się ona w lewo << powodując stany:
00000001
00000010
00000100
00001000
00010000
00100000
01000000
10000000
Następnie pojawia się następna 1 po prawej stronie (128 | 1) i kolejka idzie dalej:
10000001
10000010
10000100
Itd... aż dojdziemy do 11111111
0
1
To niezbyt brzmi jak kolejka. Jakie jest zadanie? Masz utworzyć kolejkę, i nie wiesz co to, czy masz przesuwać bit w liczbie i roboczo nazwałeś to kolejką?
0
Wymyśliłem coś takiego, wywołuje to jako Queue(1);
void Queue(int input, int it)
{
int xor = 1;
int i;
for(i=0;i<it;i++)
{
usleep(150000);
system("CLS");
IntToBinary(input,7);
input = input ^ xor;
xor = xor << 1;
input = input ^ xor;
}
Queue(input | 1,it-1);
}
Ale przy 11111101 się wywala.
2
Czy ty nie potrzebujesz przypadkiem bufora cyklicznego (dla bitów)?
Czemu w twoim przykładzie pierwszy bit po ustawieniu na 1
pozostaje ustawiony w kolejnych krokach?
Na razie brak dokładnej specyfikacji problemu, więc nie ma po co proponować rozwiązanie.
3
Napisałem tak na szybko coś co chyba robi to co byś chciał. Musisz sobie tylko kilka warningów poprawić ;)