Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.01;
Скачать: CL | DM;

Вниз

Алгоритм кодирование бинарника в строку   Найти похожие ветки 

 
Влад   (2007-03-09 17:33) [0]

Здраствуйте!

Меня интересует алгоритм кодирования бинарных данных в строку с произвольным
набором символов, т.е. что-то наподобие UUE или base64, но более гибкое.

function StrDataEncode(var Data; Size: Integer; const CS: set of Char):
String;

Поискал в инете, но ничего вразумительного не нашёл. Может кто-нибудь ткнёт
пальцем куда смотреть?

Заранее спасибо.


 
Джо ©   (2007-03-09 17:53) [1]

> кодирования бинарных данных в строку с произвольным
> набором символов, т.е. что-то наподобие UUE или base64,
> но более гибкое.

Что тут имеется ввиду?
С таком постановкой вопроса не удивительно, что

> ничего вразумительного не нашёл


 
Влад   (2007-03-09 18:01) [2]

Попробую по другому объяснить.
Процедура должна напоминать перевод значения из двоичной системы в систему с произвольным основанием, например в 33-ричную.
Мне интересен алгоритм применимый для блоков данных (в смысле не Int).


 
Джо ©   (2007-03-09 18:05) [3]

Что значит «напоминать»?
Ну, посмотри, например BinToHex.
Думаю, попытка объяснить еще раз провалилась :)


 
Влад   (2007-03-12 10:43) [4]

Нужен именно BinTo???, где в качестве параметра передается основание системы счисления.

Есть еще какие-нибудь здравые идеи?


 
Сергей М. ©   (2007-03-12 10:46) [5]


> Влад   (12.03.07 10:43) [4]


Что мешает написать такую функцию для любого основания, по аналогии с BinToHex, исходники которой у тебя перед глазами ?


 
Влад   (2007-03-12 10:59) [6]

Проблема в том, что например, при переводе в десятичную систему 1 цифра не соответствует целому числу бит.
Если реализовывать в лоб, то необходимо целочисленно делить исходные данные на основание и брать остаток, который и будет очередной цифрой, но как делить числа неограниченного размера (8 и более байт) я что-то придумать не могу :( Да и быстро работать это не будет.
Вот, собственно, и возник вопрос. Наверняка должен быть алгоритм, который позволяет это сделать быстро и просто.


 
Сергей М. ©   (2007-03-12 11:12) [7]

Без реализации "в лоб" тут никак не обойтись.
Задумайся над традиционным "делением в столбик"



Страницы: 1 вся ветка

Текущий архив: 2007.04.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.048 c
1-1170236837
SH@RK
2007-01-31 12:47
2007.04.01
Динамические массивы vs Статические массивы


2-1173178891
olmi
2007-03-06 14:01
2007.04.01
массив байт в строку


3-1168410220
Карелин Артем
2007-01-10 09:23
2007.04.01
Ускорение проверки на существование записи в таблице.


1-1170747105
Kolan
2007-02-06 10:31
2007.04.01
Как зоблокировать TChart на время рисвания на нем?


1-1170675164
Leff
2007-02-05 14:32
2007.04.01
некорректный ClipRect при resize TCustomControl а