Bit Spreading Interleave Bits with Zeros

Code

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

uint16_t spread_bits(uint8_t val) {
    uint16_t out = 0;

        for (int i = 0; i < 8; i++) {
                uint16_t bit = (val >> i) & 1;    // extrage bitul i
                        out |= bit << (2 * i);            // îl pune pe poziția 2*i
                            }

                                return out;
                                }


                                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