#include <stdio.h>
#include <stdint.h>
uint8_t reverse_bits(uint8_t val) {
uint8_t lsb, msb;
uint8_t x;
uint8_t lsb_mask, msb_mask;
uint8_t i = 0;
lsb_mask = 0x1;
msb_mask = 0x80;
while(lsb_mask < msb_mask)
{
lsb = 0;
msb = 0;
if(val & lsb_mask)
lsb = 1;
if(val & msb_mask)
msb = 1;
x = lsb ^ msb;
val = val ^ (x << (7 - i));
val = val ^ (x << i);
i++;
lsb_mask <<= 1;
msb_mask >>= 1;
}
return val;
}
int main() {
uint8_t val;
scanf("%hhu", &val);
uint8_t result = reverse_bits(val);
printf("%u", result);
return 0;
}
Input
26
Expected Output
88