Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

CRC по модулю 256


avgshron ©   (2010-06-10 14:48:00) 

Добрый день!

Имеется буфер из N байт. Требуется посчитать контрольную сумму по модулю 256. Помогите с алгоритмом, пожалуйста!


Германн   (2010-06-12 01:35:00) [1]


> DVM ©   (11.06.10 23:31) [6]
>
>

Скорее всего имеется в виду именно Checksum. Это довольно часто используемый алгоритм.


DVM   (2010-06-11 23:39:00) [2]


> avgshron ©  

вот тут лежит мой модуль для вычисления разных вариантов CRC, правда CRC256 там нет (я не вижу в нем вообще необходимости, т.к. CRC64 за глаза хватает). http://dvmuratov.narod.ru/Crc.pas
По аналогии можно сделать и для 265.


DVM   (2010-06-11 23:35:00) [3]

кроме того, вариантов CRC8 как и CRC16 и прочих - как собак разных. Например, CRC8-SMBUS, CRC8-DALLAS-MAXIM и т.д. разные полиномы, инвертирование входных данных, и т.д.

Для CRC256 тоже не один возможный вариант.


DVM   (2010-06-11 23:31:00) [4]


> Омлет ©   (10.06.10 14:57) [2]

CRC и Checksum - разные вещи.


MBo   (2010-06-10 16:36:00) [5]

>avgshron
Стоит уточнить, что именно требуется, а то в ветке уже три понятия рассматривается.
в [3] уже всплывает crc-256 - это не по модулю 256, а CRC с использованием 256-битного полинома.


RWolf   (2010-06-10 15:51:00) [6]

контрольная сумма по модулю 256 — это именно то, что написал Омлет ©   (10.06.10 14:57) [2].


avgshron   (2010-06-10 15:42:00) [7]


> смотреть реализации CRC8


Вы хотите сказать, что она аналогична crc-256? Был ли тогда смысл изобретать еще и его?


MBo   (2010-06-10 14:57:00) [8]

http://ru.wikipedia.org/wiki/%D0%A6%D0%B8%D0%BA%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B8%D0%B7%D0%B1%D1%8B%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4

смотреть реализации CRC8


Омлет   (2010-06-10 14:57:00) [9]

function CalcChkSum(Data: pointer; Size: longint): byte;
var
  i : integer;
  p : ^byte;
begin
  p := Data;
  Result := 0;
  for i := 1 to Size do
  begin
    inc(Result, p^);
    inc(p);
  end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо