Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Yours
- int[] angles;
- int i, j, k, numArms = 0x00;
- short flags = 0x00; // This will store an actual bit string built from bitString
- for (i = 0x00; i < 0x0c; i++)
- flags |= (bitString[i]) ? (numArms++ & 0x00 | 0x01)<<i : 0x00;
- k = ((--numArms) * numArms + numArms) >> 0x01;
- angles = new int[k];
- for (i = 0x00; flags != 0x0000; flags = (short)(flags >> (i++ & 0x00 | 0x01)))
- if((flags & 0x01) == 0x01)
- for(j = 0x01; j < 0x0c - i; j++)
- if ( (flags & (0x01 << j)) != 0x00)
- angles[--k] = AngleLUT[i][i+j];
- // Mine
- vector<int> angles;
- int numArms = 0;
- short flags = 0;
- for (int i = 0; i < 12; ++i)
- {
- if (bitString[i] != 0)
- {
- numArms++;
- flags |= (1 << i);
- }
- }
- numArms--;
- int k = ((numArms * numArms) + numArms) >> 1;
- angles.resize(k);
- for (int i = 0; flags != 0; i++, flags >>= 1)
- {
- if ((flags & 1) != 0)
- {
- for (int j = 1; j < 12 - i; j++)
- {
- if (flags & (1 << j) != 0)
- {
- k--;
- angles[k] = AngleLUT[i][i + j];
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment