![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
тип данных [D7, XP]
allucard © (2007-11-07 12:34:00)Народ подскажите незнающему:
необходимо принять из ком порта до 255 байт, затем пересчитать контрольную сумму - какой тип данных для этого лучше использовать?
Спасибо.
Slym (2007-11-08 06:22:00) [1]allucard (07.11.07 12:44) [6]
unsigned int CountCRC16(void *mem, unsigned int len)
{
unsigned int a, crc16;
char *pch;
pch=(char *)mem;
function CountCRC16(mem:PByte;len:integer):word;
begin
//result:=0;//заменить на инициализацию CRC16
repeat
//result:=result xor mem^;//заменить на подсчет CRC16
inc(mem);
Dec(len);
until len=0;
//result:=result xor $ffff;//заменить на финализацию CRC16
end;
Palladin (2007-11-07 14:29:00) [2]array, TMemoryStream, pointer
одинаково просто
allucard (2007-11-07 12:44:00) [3]
> Palladin © (07.11.07 12:40) [5]
а как мне проще адресоветь те данные, по которым я считаю crc?
на С++ это выглядит так:
unsigned int CountCRC16(void *mem, unsigned int len)
{
unsigned int a, crc16;
char *pch;
pch=(char *)mem;
Palladin (2007-11-07 12:40:00) [4]
> для CRC16
Word
allucard (2007-11-07 12:38:00) [5]для CRC16
Palladin (2007-11-07 12:37:00) [6]для чего этого? для принятия данных? TMemoryStream,TFileStream, array [0..254], Pointer
для подсчета контрольной суммы, тут зависит во что она считается для crc32 - cardinal
allucard (2007-11-07 12:37:00) [7]Там как то по другому:
динамически
korneley (2007-11-07 12:36:00) [8]array[0..254] of byte