Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для U-III
59 / 59 / 12
Регистрация: 24.10.2012
Сообщений: 170

Переведите код из С в Delphi

09.09.2013, 08:34. Показов 891. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C
1
2
3
4
5
6
7
8
9
10
11
12
//вычисление CRC пакета 
char CRCCalc (char* pointer, uint16_t len) {
  char CRC = 0x00;
  while(len > 0) {
    uint16_t tmp = CRC << 1;
    tmp += *pointer;
    CRC = (tmp & 0xFF) + (tmp >> 8);
    Pointer++;
    --len;
  }
  return CRC;
}
Заранее спасибо!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.09.2013, 08:34
Ответы с готовыми решениями:

Переведите код C на Delphi
char CRCCalc (char* pointer, uint16_t len) { char CRC = 0x00; while(len &gt; 0) { uint16_t tmp = CRC &lt;&lt; 1; tmp +=...

Переведите код из С в Delphi
unsigned short calc_crc(unsigned char* bytes) { unsigned short real_crc=0x0000; unsigned short tmp_crc=0x0000; for(int...

Переведите код из С в Delphi
Я к сожалению плохо знаю С, вот что у меня есть и требует перевода на Delphi. if ( buf == '+') { if ( *lenght &lt; 8 )...

3
...
 Аватар для anmartex
1910 / 1329 / 966
Регистрация: 12.02.2013
Сообщений: 2,172
09.09.2013, 17:31
Давно не программировал на pascal-е, но по идее должно работать:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function CRCCalc(pointer: pchar; len: word): shortint;
var
    tmp: word;
 
begin
    CRCCalc := 0;
 
    while (len > 0) do
    begin
        tmp := CRCCalc shl 1;
        tmp := tmp + ord(pointer^);
        CRCCalc := (tmp and $FF) + (tmp shr 8);
        inc(pointer);
        dec(len);
    end;
end;
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
09.09.2013, 19:57
Цитата Сообщение от anmartex Посмотреть сообщение
Delphi
1
tmp := CRCCalc shl 1;
Тут нельзя имя функции, только Result.
0
...
 Аватар для anmartex
1910 / 1329 / 966
Регистрация: 12.02.2013
Сообщений: 2,172
10.09.2013, 03:41
Цитата Сообщение от Somebody Посмотреть сообщение
Тут нельзя имя функции, только Result.
Ну это же не проблема
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function CRCCalc(pointer: pchar; len: word): shortint;
var
    tmp: word;
    crc: shortint;
 
begin
    crc := 0;
 
    while (len > 0) do
    begin
        tmp := crc shl 1;
        tmp := tmp + ord(pointer^);
        crc := (tmp and $FF) + (tmp shr 8);
        inc(pointer);
        dec(len);
    end;
 
    result := crc;
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.09.2013, 03:41
Помогаю со студенческими работами здесь

Переведите код C на Delphi
unsigned short crc_ccitt_update (unsigned short crc, unsigned char data){ unsigned short t; data ^= crc&amp;255; data ^=...

Переведите код C++ на Delphi
Вот процедурка int CRC16CCITT(char c, unsigned int crc) { unsigned int CRC_MASK=0x1021; asm { mov al,c //...

Переведите код pascal в Delphi
Function TestWildCard(S,WildCard:String):boolean; var i,j:integer; fnd:boolean; begin fnd:=true; if...

Переведите код с Delphi на Builder
p: real; begin if MediaPlayer1.FileName&lt;&gt;'' then begin if ssleft in shift then begin p:=ProgressBar1.Max/ProgressBar1.Width; ...

Переведите код в Lazarus с Delphi
for i:=1 to n do b:=i; t:=n; repeat i:=t; t:=1; for j:=1 to i-1 do if a]&gt;a] then begin t:=b; b:=b; b:=t;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru