Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.12.2007, 23:42
aha aha вне форума
Прохожий
 
Регистрация: 01.12.2007
Сообщения: 20
Репутация: 10
По умолчанию Горит проект , помогите перевести на дельфи с С

кусок программы для создания контрольной суммы . Оказывается С не так понятен :-((((

unsigned Hash(char Byte, char nbit, unsigned CRC)
{
for (int i = 0; i < nbit; i++, Byte <<= 1)
{
if ( ( Byte ^ (CRC>>8) ) & 0x80 )
{
CRC <<= 1; CRC ^= 0x8F57;
}
else CRC <<= 1;
}
return CRC;
}
Ответить с цитированием
  #2  
Старый 17.12.2007, 02:33
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Вроде так. C++ под рукой нету, посчитать контрольный пример не могу.
Код:
function Hash(AByte, NBit: Byte; CRC: Cardinal): Cardinal;
var
  i: Integer;
begin
  for i := 0 to NBit - 1 do begin
    if ((AByte xor (CRC shr 8)) and $80) <> 0  then begin
      CRC := CRC shl 1;
      CRC := CRC xor $8F57;
    end else
      CRC := CRC shl 1;

    AByte := AByte shl 1;
  end;

  Result := CRC;
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:23.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025