#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+CiNpbmNsdWRlIDxzdGRpbnQuaD4KdWludDhfdCBtPTA7CnVpbnQ4X3QgaT0wOwkJLy8gMAkJCTEJCQkzCQkJNwkJCTE1CnVpbnQ4X3QgbWFzc1sxMF0gPSB7MGIwMDAwMDAwMCwgMGIwMDAwMDAwMSwgMGIwMDAwMDAxMSwgMGIwMDAwMDExMSwgMGIwMDAwMTExMSwKLy8JCQkzMQkJCTYzCQkJMTI3CQkJMjU1CQkJMjU1CgkJMGIwMDAxMTExMSwgMGIwMDExMTExMSwgMGIwMTExMTExMSwgMGIxMTExMTEwMSwgMGIxMDExMTExMQp9Owp1aW50OF90IHJldmVyc2UgKHVpbnQ4X3QgZCkKewoJdWludDhfdCBhLCBiOwoJc3RhdGljIGNvbnN0IHVpbnQ4X3QgcmV2VGFibGVbXSA9IHswLCA4LCA0LCAxMiwgMiwgMTAsIDYsIDE0LCAxLCA5LCA1LCAxMywgMywgMTEsIDcsIDE1fTsKCWEgPSBkID4+IDQ7CglhID0gcmV2VGFibGVbYV07CgliID0gZCAmIDB4MEY7CgliID0gKHJldlRhYmxlW2JdKTw8NDsKIAoJcmV0dXJuIChiIHwgYSk7Cn0KaW50IG1haW4odm9pZCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJZm9yKGk9MDsgaTwxMDsgaSsrKXsKCQltID0gbWFzc1tpXTsKCQlmb3IgKHVpbnQ4X3QgcSA9IDA7IHEgPCA4OyBxKyspIHsKICAgIAkJcHJpbnRmKCIlYyIsIChtICYgMHg4MCkgPyAnMScgOiAnMCcpOwogICAgCQltIDw8PSAxOwoJCX0KLy8JCXByaW50ZigiJWQiLCBtYXNzW2ldKTsKCQlwcmludGYoIiwiKTsKCX0KCXByaW50ZigiXHIiKTsKCWZvcihpPTA7IGk8KHNpemVvZihtYXNzKS8yKTsgaSsrKXsKCQl1aW50OF90IHEgPSBtYXNzW2ldOwoJCW1hc3NbaV0gPSBtYXNzW3NpemVvZihtYXNzKS0xLWldOwoJCW1hc3Nbc2l6ZW9mKG1hc3MpLTEtaV0gPSBxOwoJfQoJZm9yKGk9MDsgaTwxMDsgaSsrKXsKCQltYXNzW2ldID0gcmV2ZXJzZSAobWFzc1tpXSk7Cgl9CiAKIAoJZm9yKGk9MDsgaTwxMDsgaSsrKXsKCQltID0gbWFzc1tpXTsKCQlmb3IgKHVpbnQ4X3QgcSA9IDA7IHEgPCA4OyBxKyspIHsKICAgIAkJcHJpbnRmKCIlYyIsIChtICYgMHg4MCkgPyAnMScgOiAnMCcpOwogICAgCQltIDw8PSAxOwoJCX0KLy8JCXByaW50ZigiJWQiLCBtYXNzW2ldKTsKCQlwcmludGYoIiwiKTsKCX0KCXJldHVybiAwOwp9
00000000,00000001,00000011,00000111,00001111,00011111,00111111,01111111,11111101,10111111,
11111101,10111111,11111110,11111100,11111000,11110000,11100000,11000000,10000000,00000000,