fork download
  1. #include <stdint.h>
  2. #include <stdio.h>
  3.  
  4. static uint32_t ror32Good(uint32_t x, uint32_t n){
  5. n &= 0x1F;
  6. return n ? x>>n | x<<(32-n) : x;
  7. }
  8. static uint32_t ror32Fail(uint32_t x, uint32_t n){
  9. return n &= 0x1F ? x>>n | x<<(32-n) : x;
  10. }
  11.  
  12.  
  13. int main(){
  14. printf("Rotating 0xDEADBEEF right by 16.\n");
  15. printf("Expecting: beefdead\n");
  16. printf("ror32Good: %x\n", ror32Good(0xDEADBEEFU, 16U));
  17. printf("ror32Fail: %x\n", ror32Fail(0xDEADBEEFU, 16U));
  18. return 0;
  19. }
  20.  
Success #stdin #stdout 0s 2168KB
stdin
Standard input is empty
stdout
Rotating 0xDEADBEEF right by 16.
Expecting: beefdead
ror32Good: beefdead
ror32Fail: 0