Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int f1(unsigned i) { // returns 2^(f3(i))
- i |= (i >> 1);
- i |= (i >> 2);
- i |= (i >> 4);
- i |= (i >> 8);
- i |= (i >> 16);
- return i - (i >> 1);
- }
- int f2(unsigned i) { // equal to f3(i)
- union { double a; unsigned b[2]; };
- a = i;
- return (b[1] >> 20) - 1022;
- }
- int f3(unsigned i) {
- return 32 - __builtin_clz(i);
- }
Add Comment
Please, Sign In to add comment