Advertisement
nullzero

divide 2

Jan 5th, 2014
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.19 KB | None | 0 0
  1. int div2(int a){
  2.     if(a & 1) a += -1;
  3.     if(a & 2) a += -2 + 1;
  4.     if(a & 4) a += -4 + 2;
  5.     if(a & 8) a += -8 + 4;
  6.     if(a & 16) a += -16 + 8;
  7.     if(a & 32) a += -32 + 16;
  8.     if(a & 64) a += -64 + 32;
  9.     if(a & 128) a += -128 + 64;
  10.     if(a & 256) a += -256 + 128;
  11.     if(a & 512) a += -512 + 256;
  12.     if(a & 1024) a += -1024 + 512;
  13.     if(a & 2048) a += -2048 + 1024;
  14.     if(a & 4096) a += -4096 + 2048;
  15.     if(a & 8192) a += -8192 + 4096;
  16.     if(a & 16384) a += -16384 + 8192;
  17.     if(a & 32768) a += -32768 + 16384;
  18.     if(a & 65536) a += -65536 + 32768;
  19.     if(a & 131072) a += -131072 + 65536;
  20.     if(a & 262144) a += -262144 + 131072;
  21.     if(a & 524288) a += -524288 + 262144;
  22.     if(a & 1048576) a += -1048576 + 524288;
  23.     if(a & 2097152) a += -2097152 + 1048576;
  24.     if(a & 4194304) a += -4194304 + 2097152;
  25.     if(a & 8388608) a += -8388608 + 4194304;
  26.     if(a & 16777216) a += -16777216 + 8388608;
  27.     if(a & 33554432) a += -33554432 + 16777216;
  28.     if(a & 67108864) a += -67108864 + 33554432;
  29.     if(a & 134217728) a += -134217728 + 67108864;
  30.     if(a & 268435456) a += -268435456 + 134217728;
  31.     if(a & 536870912) a += -536870912 + 268435456;
  32.     if(a & 1073741824) a += -1073741824 + 536870912;
  33.     if(a & 2147483648) a += -2147483648 + 1073741824;
  34.     return a;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement