Advertisement
Guest User

Untitled

a guest
May 27th, 2015
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.59 KB | None | 0 0
  1. #include "stdio.h"
  2.  
  3.  
  4. int gt(int a, int b) {
  5.     int xor = a ^ b;
  6.     int i;
  7.     for (i = 1; i <= 16; i *= 2)
  8.         xor |= xor >> i;
  9.    
  10.     xor &= (0x80000000 | ~(xor >> 1))
  11.         & ((0x80000000 ^ a)
  12.         & (0x7fffffff ^ b));
  13.  
  14.     return !!xor; // <-- double negation to give us 0 or 1
  15.                   // get ride of it for 0 or N > 0
  16. }
  17.  
  18. int main(void) {
  19.     // Disable stdout buffering
  20.     setvbuf(stdout, NULL, _IONBF, 0);
  21.  
  22.     printf("%d\n", gt(8, 6));
  23.     printf("%d\n", gt(8000, 6));
  24.     printf("%d\n", gt(-8, -60));
  25.  
  26.     printf("%d\n", gt(6, 8));
  27.     return 0;
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement