#include <stdio.h> #include <stdint.h> #define read_bit(reg,bit) (reg>>bit)&1 #define clear_bit(reg,bit) reg &=~(1<<bit) #define set_bit(reg,bit) reg |=(1<<bit) uint16_t spread_bits(uint8_t val) { // Your logic here uint8_t indx_8 =0; uint8_t indx_16 =0; uint16_t new_val = 0; for(indx_8=0;indx_8<8;indx_8++) { if(read_bit(val,indx_8)) { set_bit(new_val,indx_16); indx_16 += 2; } else { indx_16 += 2; } } return new_val; } int main() { uint8_t val; scanf("%hhu", &val); uint16_t result = spread_bits(val); printf("%u", result); return 0; }
Test Cases
Test Results
Input
202
Expected Output
20548