All submissions

Extract Even Bits Only from 32-bit Register

Code

#include <stdint.h>
#include <stdio.h>

uint32_t extract_even_bits(uint32_t reg) {

  uint32_t out = 0;
  int offset = 0;

  for (int i = 0; i < 32; i += 2) {
    if (((1U << i) & reg) != 0) {
      out |= 1 << offset;
    }

    offset += 1;
  }

  return out;
}

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

Solving Approach

 

 

 

Loading...

Input

85

Expected Output

15