Если данные строго цифры и знаки, я настоятельно рекомендую изменить числа на значения, основанные на int.Например:
+ 12939272-23923 + 927392
можно сжать в 3 части 32-разрядных целых чисел, что составляет 22 байта => 16 байтов.Выбор правильного целочисленного размера (будь то 32-битный, 24-битный, 16-битный) должен помочь.
Если целочисленный размер сильно варьируется, вы можете использовать 8-битный для начала и использовать значение 255 дляукажите, что следующий 8-разрядный становится 8 более значимыми битами целого числа, что делает его 15-разрядным.
альтернативно, вы можете определить наиболее значимый символ и присвоить ему 0.второй по значимости символ получает 10, а третий - 110. Это очень грубое сжатие, но если ваши данные очень ограничены, это может просто сработать за вас.