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

Вниз

Кодирование "без нуля" - как оптимальнее?   Найти похожие ветки 

 
Grundic ©   (2004-10-22 22:17) [0]

Возникла проблема (как это обычно бывает и у большинства спрашивающих :) - нужно преобразовать массив[255] байт в некий промежуточный не содержащий нули. И потом - обратно в исходный. Как это оптимальнее всего сделать?

ПЛИЗ! САМБАДИ ХЭЛП МИ!!! :)


 
Anatoly Podgoretsky ©   (2004-10-22 23:17) [1]

if 0 then not нуль, обратно шиш


 
kaZaNoVa ©   (2004-10-22 23:27) [2]

Grundic ©   (22.10.04 22:17)
IntToHex заюзай :)))


 
Defunct ©   (2004-10-22 23:33) [3]

> Grundic ©   (22.10.04 22:17)  

1. Преобразовать в битовый поток.
2. После каждого идущего подряд 7-го нуля добавлять единичку.
3. При обратном преобразовании выбрасывать единичку после каждых 7-ми идущих подряд нулей.


 
Grundic ©   (2004-10-23 01:33) [4]


> Anatoly Podgoretsky, kaZaNoVa

Спасибо! :))


> Defunct

Что (или почти "что") и сделал:
http://www.rsdn.ru/Forum/Message.aspx?mid=865084&only=1


 
Defunct ©   (2004-10-23 04:41) [5]

> Что (или почти "что") и сделал

Эээ выглядит просто жутко.
Понять алгоритм работы при такой реализации практически невозможно.

Я бы на вашем месте сделал бы более универсально. Скажем так, создал бы класс, у которого в качестве свойств были бы 2 потока (TStream). Обычный и без нулей. Создал бы 4 метода чтения потока любой длинны (а не только 255 байт) и преобразования.

TConverter = class
private
 ...
public
 property RealStream: TStream Read GetRealStream Write SetRealStream;
 property ZeroFreeStream: TStream Read GetZeroFreeStream Write SetZeroFreeStream;
 ...
End;


И преобразование бы делал по какому-то стандартному протоколу, например, протокол телемеханики "Гранит" http://www.iface.ru/grandesc.htm или подобному.


 
Sha ©   (2004-10-23 11:29) [6]

> Grundic ©   (22.10.04 22:17)  

Массив[255] байт
1. или уже не содержит нуля (и тогда все OK)
2. или существует некоторый ненулевой символ, которого нет в этом массиве (и тогда XOR с этим символов делает весь массив ненулевым).



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

Форум: "Основная";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.029 c
14-1098309853
Anonimus
2004-10-21 02:04
2004.11.07
Модераторам предложение


6-1093870110
DsA
2004-08-30 16:48
2004.11.07
Как в Delphi узнать скорость соединения (Dial-Up, LAN)?


10-1057319481
Bor
2003-07-04 15:51
2004.11.07
При вызове orb->resolve_initial_references возникает искл.


14-1098039450
Барбос
2004-10-17 22:57
2004.11.07
фракталы и система координат


1-1098442610
}|{yk
2004-10-22 14:56
2004.11.07
Такой вот код вываливается с ошибкой OLE





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский