Rotate Right in a 32-bit Register

Code

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

uint32_t rotate_right(uint32_t reg, uint8_t n) {
    // Your code here
    reg = ((reg>>n) | reg<<(32-n));

    return reg;
}

int main() {
    uint32_t reg;
    uint8_t n;
    scanf("%u %hhu", &reg, &n);
    printf("%u", rotate_right(reg, n));
    return 0;
}

Solving Approach

Right shift so that the right most bits will get dissolved and left shift so that the the right most bits comes to the begining

 

 

Upvote
Downvote
Loading...

Input

2147483648 1

Expected Output

1073741824