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

Вниз

Контр.сумма по модулю 2   Найти похожие ветки 

 
GanibalLector ©   (2006-12-12 21:05) [0]

Господа, имеется протокол обмена некоторого устройства, в котором … цитирую :"Последовательность проверки ПП представляет собой контрольную сумму по модулю 2"

На сколько я понимаю, по модулю 2 это исключающее ИЛИ . Или на языке Delphi обычный XOR.

Так вот, подглядел PortMon’ом работу старой утилиты, которую и переделываю.
Привожу пакеты с CRC.
1 пакет)
03 05 00 00 00 00 00 00 00           CRC=06

2 пакет)
0F 25 03 01 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 00 00 00 00      CRC= 28

Если с первым пакетом все понятно 3 xor 5 равен 6, то со вторым ну никак после «массового» xor не равно 28.

Какие будут предложения ???


 
Eraser ©   (2006-12-12 21:07) [1]

> [0] GanibalLector ©   (12.12.06 21:05)


> Какие будут предложения ???

для посчета контрольной суммы используется не XOR :)


 
GanibalLector ©   (2006-12-12 21:10) [2]

2 Eraser ©   (12.12.06 21:07) [1]
>для посчета контрольной суммы используется не XOR :)

А что ??? Я вот так считаю :


function CRC(Line:String):Byte;
 var I:Integer;
begin
 Result:=0;
 for I:=1 to Length(Line) do
  Result:=Result xor Ord(Line[I]);
end;


 
Чапаев ©   (2006-12-12 21:14) [3]

> то со вторым ну никак после «массового» xor не равно 28
Ну как же не равно, если именно равно?
F xor 25=2A
2A xor 3=29
29 xor 1=28
последующий 24-кратный xor с 20 результата не изменит.


 
Чапаев ©   (2006-12-12 21:15) [4]

> [2] GanibalLector ©   (12.12.06 21:10)
Фигня. :о) Каждый "байт" занимает два символа строки. Да и ещё и пробел между "байтами". А ты всё гамузом ксоришь.


 
GanibalLector ©   (2006-12-12 21:25) [5]

2 Чапаев © [3]
Угу...вроде все правильно .

> Каждый "байт" занимает два символа строки. Да и ещё и пробел между "байтами".

Не, я все правильно делал. Типа CRC(Chr($0F)+Chr($25)+...)


 
tesseract ©   (2006-12-12 21:29) [6]

не верь документации!!!!
я столько этих устройств поюзал :-) Всё может быть врено  только не указано КАКИЕ байты посылки в XOR не участвуют.


 
Чапаев ©   (2006-12-12 21:32) [7]

> Типа CRC(Chr($0F)+Chr($25)+...)
Извращенец. :о) Тогда уж CRC(#$F#$25)

Ещё можно вспомнить о том, что #$F <=> ^O
%-)


 
GanibalLector ©   (2006-12-12 21:40) [8]

Блин, прошу прощения, все работает.
Из серии заработался ;)

Всем спасибо !!!


 
GanibalLector ©   (2006-12-12 21:42) [9]

>Извращенец. :о) Тогда уж CRC(#$F#$25)

:) Это я в учебных целях проверки образования CRC.
На самом деле у меня array of Byte



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

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

Наверх




Память: 0.49 MB
Время: 0.059 c
9-1140729801
Kolan
2006-02-24 00:23
2006.12.31
Пытаюсь вспомнить как называлась игра, которую тут представляли..


15-1166000886
Ega23
2006-12-13 12:08
2006.12.31
Как по-английски сказать "прямое направление"?


15-1165809858
Slider007
2006-12-11 07:04
2006.12.31
С днем рождения ! 10 декабря


2-1165860520
M1sT
2006-12-11 21:08
2006.12.31
Как и где правильно хранить пароль администратора программы?


15-1165870136
Petr V. Abramov
2006-12-11 23:48
2006.12.31
Изучаю программирование сетей :)