Подойдет даже простейшая операция конкатенации:
соединяем текстовые записи обоих чисел в выбранной системе счисления, а в начало добавляем несколько разрядов под указатель на позицию их границы.
Сколько именно разрядов - автоопределяется исходя из общей длины итогового числа.
Во избежание старших нулей в указателе можно принудительно поставить на первое место незначащую ненулевую цифру.
Если числа со знаком - вместо первой незначащей цифры ставим цифру, кодирующую одну из 4 возможных ситуаций (++ , +- , -+, --).
Если числа вещественные - аналогично добавляем указатели на позиции начала каждой из дробных частей.
Если числа комплексные - аналогично добавляем указатели на позиции начала каждой из мнимых частей.
В общем, закодировать и декодировать совсем не проблема.