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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.038 c
1-1098794626
Victor
2004-10-26 16:43
2004.11.07
Распределение ресурсов


3-1097042785
cad2206
2004-10-06 10:06
2004.11.07
Данные из DBGrid в отчет QReport, как?


1-1098647263
saNat
2004-10-24 23:47
2004.11.07
Формулы аля MS Equation


14-1097751263
-=PsyXaoc=-
2004-10-14 14:54
2004.11.07
Помогите с лабой


1-1098446830
Алексей Петухов
2004-10-22 16:07
2004.11.07
Clipboard