#include <stdio.h> #include <stdint.h> uint8_t swap_bit(uint8_t val, uint8_t pos1, uint8_t pos2){ uint8_t bit_pos1 = (val>>pos1) & 1; uint8_t bit_pos2 = (val>>pos2) & 1; uint8_t clear_mask = ~(1<<pos1 | 1<<pos2); val = val & clear_mask; val = (val | bit_pos1<<pos2) | bit_pos2<<pos1; return val; } uint8_t reverse_bits(uint8_t val) { val = swap_bit(val, 0, 7); val = swap_bit(val, 1, 6); val = swap_bit(val, 2, 5); val = swap_bit(val, 3, 4); return val; } int main() { uint8_t val; scanf("%hhu", &val); uint8_t result = reverse_bits(val); printf("%u", result); return 0; }
Test Cases
Test Results
Input
26
Expected Output
88