Итак просидев над это темой очень много времени, я так и не смог осознать, каким образом получается эта магия.
octalNumber = (int) (octalNumber + (decimalNumber % 8) * Math.pow(10, i++));
decimalNumber = decimalNumber / 8;
Со второй строчкой все понятно, а вот с первой нет.
Смысл тут в том, что используя исключительно арифметику, мы получаем нужно число.
Обычно большая часть примеров на тех или иных языках, что я находил пользовались алгоритмом с сохранением остатка от деления в целочисленный массив или строчный, а потом как либо его переворачивали(зеркалили, инвертировали \\как вам будет удобно),тем самым получая нужно число.
Я посмотрел много примеров на ютубе по написанию конвертеров и объяснений о том, как выполнять переводы, и что нет прямого перевода из 8 в 16(и обратно),нужно пользоваться триадами и тетрадами.
и так далее и тому подобное.
Все это я гуглил, яндексил и даже читал темы по этой задаче тут на раше.
я получил знание, как механически подставить под алгоритм значения и получить результат.
Но абстрактную(или как правильно это назвать?) модель не уловил.
Прошу, кто может покидайте материал для чтения или по возможности попытайтесь изложить смысл в своей интерпретации.