Кодировка Base-N байтового массива

Пару дней назад я наткнулсяэтот CodeReview для Base-36, кодирующего байтовый массив. Однако последующие ответы неt коснуться декодирования обратно в байтовый массив или, возможно, повторно использовать ответ для выполнения кодирования различных основ (основание).

Ответ на связанный вопрос использует BigInteger. Итак, что касается реализации, база и ее цифры могут быть параметризованы.

Проблема с BigInteger в том, что мыобрабатывая наш вход как предполагаемое целое число. Тем не менее, наш ввод, байтовый массив, является просто непрозрачной серией значений.

Если байтовый массив заканчивается серией нулевых байтов, например, {0xFF, 0x7F, 0x00,0x00}, эти байты будут потеряны при использовании алгоритма в ответе (будет кодировать только {0xFF, 0x7F}).Если последний ненулевой байт имеет установленный знаковый бит, то исходящий нулевой байт расходуется какрассматривается как BigIntразделитель знака. Таким образом, {0xFF, 0xFF, 0x00,0x00} будет кодироваться только как {0xFF, 0xFF, 0x00}.

Как программист .NET может использовать BigInteger для создания достаточно эффективного и радикально независимого кодера, с поддержкой декодирования, а также с возможностью обработки порядка байтов и с возможностьюработать вокруг теряются нулевые байты?

Ответы на вопрос(2)

Ваш ответ на вопрос