#include <stdio.h>
#include <stdint.h>
uint8_t shift_reg = 0b101;
void print_bin(uint8_t value) {
for (int i = 7; i >= 0; i--)
printf("%d", (value
& (1 << i
)) >> i
); }
void test(void) {
shift_reg = (shift_reg >> 1) | ((shift_reg & 1) << 7);
}
int main(void) {
print_bin(shift_reg);
test(); print_bin(shift_reg);
test(); print_bin(shift_reg);
test(); print_bin(shift_reg);
test(); print_bin(shift_reg);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRpbnQuaD4KCnVpbnQ4X3Qgc2hpZnRfcmVnID0gMGIxMDE7Cgp2b2lkIHByaW50X2Jpbih1aW50OF90IHZhbHVlKSB7CiAgICBmb3IgKGludCBpID0gNzsgaSA+PSAwOyBpLS0pCiAgICAgICAgcHJpbnRmKCIlZCIsICh2YWx1ZSAmICgxIDw8IGkpKSA+PiBpICk7CiAgICBwdXRjKCdcbicsIHN0ZG91dCk7Cn0KCnZvaWQgdGVzdCh2b2lkKSB7CglzaGlmdF9yZWcgPSAoc2hpZnRfcmVnID4+IDEpIHwgKChzaGlmdF9yZWcgJiAxKSA8PCA3KTsKfQoKaW50IG1haW4odm9pZCkgewoJcHJpbnRfYmluKHNoaWZ0X3JlZyk7Cgl0ZXN0KCk7IHByaW50X2JpbihzaGlmdF9yZWcpOwoJdGVzdCgpOyBwcmludF9iaW4oc2hpZnRfcmVnKTsKCXRlc3QoKTsgcHJpbnRfYmluKHNoaWZ0X3JlZyk7Cgl0ZXN0KCk7IHByaW50X2JpbihzaGlmdF9yZWcpOwoJcmV0dXJuIDA7Cn0K