32. Rotate Right in a 32-bit Register

Back To All Submissions
Previous Submission
Next Submission

Code

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

void rotate_(uint32_t* reg, uint8_t n) {
	uint32_t mask = (1UL << n) - 1;
	uint32_t val = (*reg) & mask;
	*reg >>= n;
	*reg |= val << (32 - n);
}

void rotate(uint32_t* reg, uint8_t n) {
    *reg = (*reg>>n)|(*reg<<(32-n));

}

int main() {
	uint32_t reg, n;
	scanf("%u%u", &reg, &n);
	rotate(&reg, n);
	printf("%u", reg);
}

Solving Approach

 

 

 

Was this helpful?
Upvote
Downvote