#include <stdio.h>
#include <stdint.h>
uint16_t skipct;
uint16_t xskipct;
void to_bin(uint16_t num, char *str)
{
// Iterate from the most significant bit to the least significant bit
for (int i = 15; i >= 0; i--)
*str++ = ((num >> i) & 1) ? '1' : '0';
*str = '\0';
}
void do_sample()
{
char bstr[17];
skipct++;
xskipct ^= skipct;
to_bin(skipct, bstr);
printf("skipct: %d [ %16s ] ", skipct
, bstr
);
to_bin(xskipct, bstr);
printf("xskiptct: %16s\n", bstr
);
xskipct = skipct;
}
int main(void)
{
uint16_t j;
for (skipct = 0, xskipct = 0, j = 0; j < 20; j++)
do_sample();
for (j = 0; j < 16; j++)
{
if (j == 7)
break;
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRpbnQuaD4KCnVpbnQxNl90IHNraXBjdDsKdWludDE2X3QgeHNraXBjdDsKCnZvaWQgdG9fYmluKHVpbnQxNl90IG51bSwgY2hhciAqc3RyKQp7CiAgICAvLyBJdGVyYXRlIGZyb20gdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IHRvIHRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXQKICAgIGZvciAoaW50IGkgPSAxNTsgaSA+PSAwOyBpLS0pCiAgICAgICAgKnN0cisrID0gKChudW0gPj4gaSkgJiAxKSA/ICcxJyA6ICcwJzsKCiAgICAqc3RyID0gJ1wwJzsKfQoKdm9pZCBkb19zYW1wbGUoKQp7CgljaGFyIGJzdHJbMTddOwoKCXNraXBjdCsrOwoJeHNraXBjdCBePSBza2lwY3Q7CgoJdG9fYmluKHNraXBjdCwgYnN0cik7CglwcmludGYoInNraXBjdDogJWQgWyAlMTZzIF0gIiwgc2tpcGN0LCBic3RyKTsKCgl0b19iaW4oeHNraXBjdCwgYnN0cik7CglwcmludGYoInhza2lwdGN0OiAlMTZzXG4iLCBic3RyKTsKCgl4c2tpcGN0ID0gc2tpcGN0Owp9CgppbnQgbWFpbih2b2lkKQp7Cgl1aW50MTZfdCBqOwoKCWZvciAoc2tpcGN0ID0gMCwgeHNraXBjdCA9IDAsIGogPSAwOyBqIDwgMjA7IGorKykKCQlkb19zYW1wbGUoKTsKCQkKCWZvciAoaiA9IDA7IGogPCAxNjsgaisrKQoJewoJCWlmIChqID09IDcpCgkJCWJyZWFrOwoJfQoKCXByaW50ZigiaiA9ICVkXG4iLCBqKTsKCglyZXR1cm4gMDsKfQo=