#include <stdio.h> #include <stdint.h> uint32_t extract_even_bits(uint32_t reg) { // Your code here uint16_t newReg = 0; /* // regular way for (uint8_t i = 0; i < 32; i += 2) { if (reg & (1 << i)) { newReg |= (1 << (i/2)); } } */ /* extract bit from reg value = (reg >> i) & 0x01 newReg |= value */ for (uint8_t i = 0; i < 32; i += 2) { newReg |= (((reg >> i) & 0x01) << i/2); } return newReg; } int main() { uint32_t reg; scanf("%u", ®); printf("%u", extract_even_bits(reg)); return 0; }
Test Cases
Test Results
Input
85
Expected Output
15