Extract Even Bits Only from 32-bit Register

Code

#include <stdio.h>
#include <stdint.h>
uint8_t pos=0;
uint32_t result=0;
uint32_t extract_even_bits(uint32_t reg) {

for(char i=0;i<32;i+=2){
    
 char bit=(reg>>i)&1;
 result|=(bit<<pos);
 pos++;

}

 return result;

}

int main() {
    uint32_t reg;
    scanf("%u", &reg);
    printf("%u", extract_even_bits(reg));
    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

85

Expected Output

15