12 std::int8_t remainder = 0;
13 initialPositionCode = code;
14 std::int32_t sumCurrentCode = 0;
15 std::int32_t codeBeforeDecoded = 0;
17 std::vector<std::int32_t> power16 = {1, 16, 16*16, 16*16*16, 16*16*16*16};
19 remainder = code % power16[4] % power16[3] % power16[2] % power16[1];
20 initialPositionPowerBlockCode = remainder;
21 sumCurrentCode = remainder;
23 codeBeforeDecoded = (code - sumCurrentCode) % power16[4] % power16[3] % power16[2];
24 initialPositionCodeList[3] = codeBeforeDecoded / power16[1];
25 sumCurrentCode += codeBeforeDecoded;
27 codeBeforeDecoded = (code - sumCurrentCode) % power16[4] % power16[3];
28 initialPositionCodeList[2] = codeBeforeDecoded / power16[2];
29 sumCurrentCode += codeBeforeDecoded;
31 codeBeforeDecoded = (code - sumCurrentCode) % power16[4];
32 initialPositionCodeList[1] = codeBeforeDecoded / power16[3];
33 sumCurrentCode += codeBeforeDecoded;
35 codeBeforeDecoded = (code - sumCurrentCode);
36 initialPositionCodeList[0] = codeBeforeDecoded / power16[4];
40 return initialPositionCode;
44 return initialPositionCodeList;
48 return initialPositionPowerBlockCode;
std::int8_t getInitialPositionPowerBlockCode()
std::vector< std::int8_t > getInitialPositionCodeList()
std::int32_t getInitialPositionCode()
void decode(std::int32_t code)