32. Rotate Right in a 32-bit Register

Back To All Submissions
Previous Submission
Next Submission

Code

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

uint32_t rotate_right(uint32_t reg, uint8_t n) {
    uint8_t bit=0;
    for(int i=0; i<n; i++){
        bit=reg&0x01;
        reg>>=1;
        reg|=(bit<<31);
    }
    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

 

 

Was this helpful?
Upvote
Downvote