#include <stdio.h>
#include <stdint.h>
uint32_t extract_even_bits(uint32_t reg)
{
// Step 1: Create mask with 1s in even positions
uint32_t mask = 0;
for(int i = 0; i < 32; i += 2){
mask |= (1U << i);
}
// Step 2: Apply mask to extract even-position bits
uint32_t filtered = reg & mask;
// Step 3: Compress the even bits (remove gaps)
uint32_t result = 0;
int k = 0;
for(int i = 0; i < 32; i += 2) {
uint32_t bit = (filtered >> i) & 1U; // extract bit at even position
result |= (bit << k); // place contiguously into result
k++;
}
return result; // compressed 16-bit value inside 32-bit container
}
int main() {
uint32_t reg;
scanf("%u", ®);
printf("%u", extract_even_bits(reg));
return 0;
}Input
85
Expected Output
15