1 f (x) 2 unsigned x; 3 { 4 return (unsigned) (((unsigned long long) x * 0xAAAAAAAB) >> 32) >> 1; 5 } 6 7 main () 8 { 9 unsigned i; 10 11 for (i = 0; i < 10000; i++) 12 if (f (i) != i / 3) 13 abort (); 14 exit (0); 15 } 16