Bit Spreading Interleave Bits with Zeros

Code

#include<stdio.h>
#include<stdint.h>

#define CHECK_BIT(REG,BIT)          ((REG) & (1 << BIT))

uint16_t spreading(uint8_t val){
    uint16_t result;
    for(int i = 0 ; i <= 7 ; ++i){
        if(CHECK_BIT(val,i)){
            result |= (1 << (2 * i));
        }
    }
    return result;
}

int main(){
    uint8_t reg;
    scanf("%hhu", &reg);

    uint16_t rs = spreading(reg);
    printf("%hu", rs);

    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

202

Expected Output

20548