#include <stdio.h> #include <stdint.h> uint32_t extract_even_bits(uint32_t reg) { if (reg == 0) return 0; reg = reg & 0x55555555; reg = ((reg>>1) & 0x22222222) | (reg & 0x11111111); reg = ((reg>>2) & 0x0C0C0C0C) | (reg & 0x03030303); reg = ((reg>>4) & 0x00F000F0) | (reg & 0x000F000F); reg = ((reg>>8) & 0x0000FF00) | (reg & 0x000000FF); return reg; } int main() { uint32_t reg; scanf("%u", ®); printf("%u", extract_even_bits(reg)); return 0; }
Test Cases
Test Results
Input
85
Expected Output
15