#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void two_bites(unsigned int x, unsigned char * b1, unsigned char * b2)
{
if (x < 2) { *b1 = 0; *b2 = x&1; return; }
while(x >= 4) x >>=1;
*b2 = (unsigned char)(x&1); *b1 = (unsigned char)(x>>1);
}
int main()
{
for(unsigned int x = 0; x < 100; ++x)
{
unsigned char b1, b2;
two_bites(x,&b1,&b2);
printf("%u : %d %d\n",x,b1,b2);
}
}
I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKdm9pZCB0d29fYml0ZXModW5zaWduZWQgaW50IHgsIHVuc2lnbmVkIGNoYXIgKiBiMSwgdW5zaWduZWQgY2hhciAqIGIyKQp7CiAgICBpZiAoeCA8IDIpIHsgKmIxID0gMDsgKmIyID0geCYxOyByZXR1cm47IH0KICAgIHdoaWxlKHggPj0gNCkgeCA+Pj0xOwogICAgKmIyID0gKHVuc2lnbmVkIGNoYXIpKHgmMSk7ICpiMSA9ICh1bnNpZ25lZCBjaGFyKSh4Pj4xKTsKfQoKaW50IG1haW4oKQp7CiAgICBmb3IodW5zaWduZWQgaW50IHggPSAwOyB4IDwgMTAwOyArK3gpCiAgICB7CiAgICAgICAgdW5zaWduZWQgY2hhciBiMSwgYjI7CiAgICAgICAgdHdvX2JpdGVzKHgsJmIxLCZiMik7CiAgICAgICAgcHJpbnRmKCIldSA6ICVkICVkXG4iLHgsYjEsYjIpOwogICAgfQp9Cg==