Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];

Вниз

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

 
Влад   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.04 c
2-1173093131
vtur
2007-03-05 14:12
2007.04.01
курсор мыши


15-1173540667
PARUS
2007-03-10 18:31
2007.04.01
JAVA на компе


2-1173656683
Ламер 2.Х
2007-03-12 02:44
2007.04.01
ProgressBar


15-1173117673
nobody_1988
2007-03-05 21:01
2007.04.01
Books about win programming


3-1168319565
Vovan123+
2007-01-09 08:12
2007.04.01
Правильно запустить форму для проверки пароля





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский