Главная страница
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.029 c
15-1173254741
homm
2007-03-07 11:05
2007.04.01
Сплин - скажи


11-1152408034
Scrage
2006-07-09 05:20
2007.04.01
KOL и MCK


15-1173178219
Ega23
2007-03-06 13:50
2007.04.01
Так сколько раз будет вычеслено условие цикла???


2-1173255912
Jemadar
2007-03-07 11:25
2007.04.01
Повторный запуск и DDE


4-1163524472
Wadim
2006-11-14 20:14
2007.04.01
Как сделать обновление экрана как при нажатии кнопки Windows