Guest User

Untitled

a guest
Jun 23rd, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.99 KB | None | 0 0
  1. // Yours
  2.  
  3. int[] angles;
  4. int i, j, k, numArms = 0x00;
  5. short flags = 0x00; // This will store an actual bit string built from bitString
  6.  
  7. for (i = 0x00; i < 0x0c; i++)
  8.     flags |= (bitString[i]) ? (numArms++ & 0x00 | 0x01)<<i : 0x00; 
  9.  
  10. k = ((--numArms) * numArms + numArms) >> 0x01;
  11. angles = new int[k];
  12. for (i = 0x00; flags != 0x0000; flags = (short)(flags >> (i++ & 0x00 | 0x01)))
  13.     if((flags & 0x01) == 0x01)
  14.         for(j = 0x01; j < 0x0c - i; j++)
  15.             if ( (flags & (0x01 << j)) != 0x00)
  16.                 angles[--k] = AngleLUT[i][i+j];
  17.                
  18. // Mine
  19.                
  20. vector<int> angles;
  21. int numArms = 0;
  22. short flags = 0;
  23.  
  24. for (int i = 0; i < 12; ++i)
  25. {
  26.     if (bitString[i] != 0)
  27.     {
  28.         numArms++;
  29.         flags |= (1 << i);
  30.     }
  31. }
  32.  
  33. numArms--;
  34. int k = ((numArms * numArms) + numArms) >> 1;
  35. angles.resize(k);
  36. for (int i = 0; flags != 0; i++, flags >>= 1)
  37. {
  38.     if ((flags & 1) != 0)
  39.     {
  40.         for (int j = 1; j < 12 - i; j++)
  41.         {
  42.             if (flags & (1 << j) != 0)
  43.             {
  44.                 k--;
  45.                 angles[k] = AngleLUT[i][i + j];
  46.             }
  47.         }
  48.     }
  49. }
Add Comment
Please, Sign In to add comment