#include <stdio.h> #include <stdint.h> uint32_t extract_even_bits(uint32_t reg) { // Your code here // reg = reg&0x55; // reg = ((reg >> 0) & 1) | // ((reg >> 1) & 2) | // ((reg >> 2) & 4) | // ((reg >> 3) & 8); // return reg; uint32_t result = 0; int out_pos = 0; for (int in_pos = 0; reg != 0; in_pos += 2) { if (reg & 1) { result |= (1U << out_pos); } reg >>= 2; out_pos++; } return result; } int main() { uint32_t reg; scanf("%u", ®); printf("%u", extract_even_bits(reg)); return 0; }
Test Cases
Test Results
Input
85
Expected Output
15