Для начала 0..30+0..30+0..30 = 93 значения, а не 90.
Во-вторых сложив, вы обратно не разложите, так как диапазоны пересекаются, и что 25+30 и 30+25 - для результата неважно.
Что можно сделать для перевода число в двухначное:
1. Переводим в двоичную систему, видим что на диапазон от 30 это 11110, и нам нужно 5 бит.
2. Следовательно однозначно закодировать, с возможностью раскодировать три значения, нужно минимум 15 бит.
3. 111111111111111 = 32767
4. Можно использовать систему исчисления с бОльшим основанием таким образом, чтобы 15 бит влезло в 2 символа.
5. Шестнадцатиричной будет недостаточно (7FFF - 4 символа)
6. Следовательно нужно подобрать систему исчисления, где ваше число уместится в два знака. Подозреваю, что 46-ричной (30 + 30/2) должно быть достаточно с запасом, но под рукой готового калькулятора для свободного конвертирования нет, надо поковырять, осталось только подобрать 46 разных символов для обозначения числа.