#include <stdio.h>
#include <stdint.h>
uint8_t m=0;
uint8_t i=0; // 0 1 3 7 15
uint8_t mass[10] = {0b00000000, 0b00000001, 0b00000011, 0b00000111, 0b00001111,
// 31 63 127 255 255
0b00011111, 0b00111111, 0b01111111, 0b11111101, 0b10111111
};
uint8_t reverse (uint8_t d)
{
uint8_t a, b;
static const uint8_t revTable[] = {0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15};
a = d >> 4;
a = revTable[a];
b = d & 0x0F;
b = (revTable[b])<<4;
return (b | a);
}
int main(void) {
// your code goes here
for(i=0; i<10; i++){
m = mass[i];
for (uint8_t q = 0; q < 8; q++) {
printf("%c", (m
& 0x80) ? '1' : '0'); m <<= 1;
}
// printf("%d", mass[i]);
}
for(i=0; i<(sizeof(mass)/2); i++){
uint8_t q = mass[i];
mass[i] = mass[sizeof(mass)-1-i];
mass[sizeof(mass)-1-i] = q;
}
for(i=0; i<10; i++){
mass[i] = reverse (mass[i]);
}
for(i=0; i<10; i++){
m = mass[i];
for (uint8_t q = 0; q < 8; q++) {
printf("%c", (m
& 0x80) ? '1' : '0'); m <<= 1;
}
// printf("%d", mass[i]);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRpbnQuaD4KdWludDhfdCBtPTA7CnVpbnQ4X3QgaT0wOwkJLy8gIDAJCQkxCQkJMwkJCTcJCQkxNQp1aW50OF90IG1hc3NbMTBdID0gezBiMDAwMDAwMDAsIDBiMDAwMDAwMDEsIDBiMDAwMDAwMTEsIDBiMDAwMDAxMTEsIDBiMDAwMDExMTEsCi8vCQkJCQkJMzEJCQk2MwkJCTEyNwkJCTI1NQkJCTI1NQoJCQkJCTBiMDAwMTExMTEsIDBiMDAxMTExMTEsIDBiMDExMTExMTEsIDBiMTExMTExMDEsIDBiMTAxMTExMTEKfTsKdWludDhfdCByZXZlcnNlICh1aW50OF90IGQpCnsKCXVpbnQ4X3QgYSwgYjsKCXN0YXRpYyBjb25zdCB1aW50OF90IHJldlRhYmxlW10gPSB7MCwgOCwgNCwgMTIsIDIsIDEwLCA2LCAxNCwgMSwgOSwgNSwgMTMsIDMsIDExLCA3LCAxNX07CglhID0gZCA+PiA0OwoJYSA9IHJldlRhYmxlW2FdOwoJYiA9IGQgJiAweDBGOwoJYiA9IChyZXZUYWJsZVtiXSk8PDQ7CiAKCXJldHVybiAoYiB8IGEpOwp9CmludCBtYWluKHZvaWQpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCWZvcihpPTA7IGk8MTA7IGkrKyl7CgkJbSA9IG1hc3NbaV07CgkJZm9yICh1aW50OF90IHEgPSAwOyBxIDwgODsgcSsrKSB7CiAgICAJCXByaW50ZigiJWMiLCAobSAmIDB4ODApID8gJzEnIDogJzAnKTsKICAgIAkJbSA8PD0gMTsKCQl9Ci8vCQlwcmludGYoIiVkIiwgbWFzc1tpXSk7CgkJcHJpbnRmKCIsIik7Cgl9CglwcmludGYoIlxyIik7Cglmb3IoaT0wOyBpPChzaXplb2YobWFzcykvMik7IGkrKyl7CgkJdWludDhfdCBxID0gbWFzc1tpXTsKCQltYXNzW2ldID0gbWFzc1tzaXplb2YobWFzcyktMS1pXTsKCQltYXNzW3NpemVvZihtYXNzKS0xLWldID0gcTsKCX0KCWZvcihpPTA7IGk8MTA7IGkrKyl7CgkJbWFzc1tpXSA9IHJldmVyc2UgKG1hc3NbaV0pOwoJfQogCiAKCWZvcihpPTA7IGk8MTA7IGkrKyl7CgkJbSA9IG1hc3NbaV07CgkJZm9yICh1aW50OF90IHEgPSAwOyBxIDwgODsgcSsrKSB7CiAgICAJCXByaW50ZigiJWMiLCAobSAmIDB4ODApID8gJzEnIDogJzAnKTsKICAgIAkJbSA8PD0gMTsKCQl9Ci8vCQlwcmludGYoIiVkIiwgbWFzc1tpXSk7CgkJcHJpbnRmKCIsIik7Cgl9CglyZXR1cm4gMDsKfQo=
00000000,00000001,00000011,00000111,00001111,00011111,00111111,01111111,11111101,10111111,
11111101,10111111,11111110,11111100,11111000,11110000,11100000,11000000,10000000,00000000,