#include <stdio.h>
#include <stdint.h>
uint32_t extract_even_bits(uint32_t reg) {
// Your code here
/*
uint32_t result = 0;
for(int i = 31;i>=0;i--){
if(!(i&1)){
if((reg >> i) & 1){
result = (result | 1 );
}
result = result << 1;
}
}
return result>>1;
above method works but dont use this method
*/
uint32_t result = 0;
int out_pos = 0;
for (int i = 0; i < 32; i += 2) { // iterate over even positions
uint32_t bit = (reg >> i) & 1;
result |= bit << out_pos;
out_pos++;
}
return result;
}
int main() {
uint32_t reg;
scanf("%u", ®);
printf("%u", extract_even_bits(reg));
return 0;
}Input
85
Expected Output
15