Вы смешиваете логику с отображением. (А это один из величайших грехов в программировании)
Не бывает чисел в десятичной системе или в троичной системе — числа, это числа. Бывает десятичная система ЗАПИСИ чисел. (Т.е. речь об отображении).
Если грамотно разделить, то у вас останутся — конвертеры из строковой записи в числовую и обратно, и обычные математические функции.
Например: создайте класс Number, добавьте в него функции:
Number(<число_записанное_строкой>, <разрядность>)
__toString(<разрядность>)
И перегруженные операторы сложения, вычитания, деления.