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

static       uint32_t ror32Good(uint32_t x, uint32_t n){
	n &= 0x1F;
	return n ? x>>n | x<<(32-n) : x;
}
static       uint32_t ror32Fail(uint32_t x, uint32_t n){
	return n &= 0x1F ? x>>n | x<<(32-n) : x;
}


int main(){
	printf("Rotating 0xDEADBEEF right by 16.\n");
	printf("Expecting: beefdead\n");
	printf("ror32Good: %x\n", ror32Good(0xDEADBEEFU, 16U));
	printf("ror32Fail: %x\n", ror32Fail(0xDEADBEEFU, 16U));
	return 0;
}
