Kolejka w C

0

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

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ć ;)

https://onlinegdb.com/rk6b9YNwI

1 użytkowników online, w tym zalogowanych: 0, gości: 1