Bit Spreading Interleave Bits with Zeros

Code

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

uint16_t spread_bits(uint8_t val) {
    // Your logic here
    uint16_t data = 0;

    data |= 1&val;
    data |= ((1&(val>>1)) << 2);
    data |= ((1&(val>>2)) << 4);
    data |= ((1&(val>>3)) << 6);
    data |= ((1&(val>>4)) << 8);
    data |= ((1&(val>>5)) << 10);
    data |= ((1&(val>>6)) << 12);
    data |= ((1&(val>>7)) << 14);
    
    return data;

}

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

    uint16_t result = spread_bits(val);
    printf("%u", result);
    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

202

Expected Output

20548