#include <stdio.h> #include <stdint.h> uint32_t extract_even_bits(uint32_t reg) { // Your code here reg = reg & 0x55555555; uint32_t mask = 0x1; int i = 0; uint32_t num = 0; while(reg) { reg = reg & reg - 1; i++; } reg = (1 << i) - 1; /* while(i < 16) { num = ((reg & mask) >> i) | num; mask <<= 2; i++; } */ 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