powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / помогите перевести на php
5 сообщений из 5, страница 1 из 1
помогите перевести на php
    #38682347
__1@1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
unsigned short crc16(unsigned char *pData, unsigned int size) 
{ 
  unsigned short crc16_result = 0x0000; 
  for(unsigned int i=0; i<size; i++) 
  { 
    unsigned short val=0; 
    val = (unsigned short) *(pData+i); 
    crc16_result ^= val; 
    for (unsigned char j = 0; j < 8; j++) 
    { 
      crc16_result = crc16_result & 0x0001 ? (crc16_result >>1 ) ^ 0xA001: crc16_result >>1; 
    } 
  } 
  return crc16_result; 
} 
...
Рейтинг: 0 / 0
помогите перевести на php
    #38682471
ну мля...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__1@1,
... если уже и в Википедии забанили...
...
Рейтинг: 0 / 0
помогите перевести на php
    #38682718
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
начал переводить и понял, что нифига это не crc16 )) Это вообще какой-то ущербный алгоритм чего-то )
Автор попытался для простоты перевернуть понятие направления битов (как я понял, смотря на перевёрнутый полином и на смещение вправо, а не влево), да вот только забыл при этом перевернуть биты читаемого байта... Потому не знаю какой результат стоит ожидать от такого кода.

А вообще, если его надо перевести, то тут ничего такого сложного не встречается и всё переводится строчка в строчку (с последующим вырезанием лишнего, так как в этом коде тоже лишние инструкции присутствуют).
...
Рейтинг: 0 / 0
помогите перевести на php
    #38682720
__1@1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёрначал переводить и понял, что нифига это не crc16 )) Это вообще какой-то ущербный алгоритм чего-то )
Автор попытался для простоты перевернуть понятие направления битов (как я понял, смотря на перевёрнутый полином и на смещение вправо, а не влево), да вот только забыл при этом перевернуть биты читаемого байта... Потому не знаю какой результат стоит ожидать от такого кода.

А вообще, если его надо перевести, то тут ничего такого сложного не встречается и всё переводится строчка в строчку (с последующим вырезанием лишнего, так как в этом коде тоже лишние инструкции присутствуют).
эм... ну я малось слабоват в сях.
во что например можно перевести вот это?
Код: plaintext
1.
val = (unsigned short) *(pData+i); 


если не сложно переведите всё...
...
Рейтинг: 0 / 0
помогите перевести на php
    #38682779
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__1@1Програмёрначал переводить и понял, что нифига это не crc16 )) Это вообще какой-то ущербный алгоритм чего-то )
Автор попытался для простоты перевернуть понятие направления битов (как я понял, смотря на перевёрнутый полином и на смещение вправо, а не влево), да вот только забыл при этом перевернуть биты читаемого байта... Потому не знаю какой результат стоит ожидать от такого кода.

А вообще, если его надо перевести, то тут ничего такого сложного не встречается и всё переводится строчка в строчку (с последующим вырезанием лишнего, так как в этом коде тоже лишние инструкции присутствуют).
эм... ну я малось слабоват в сях.
во что например можно перевести вот это?
Код: plaintext
1.
val = (unsigned short) *(pData+i); 


если не сложно переведите всё...

Из-за того, что в сях нету полноценных массивов и строк (в стандартном наборе, разумеется соответствующие модули это реализуют, хотя не помню точно, может реализуют только в С++... не важно), то в нём используются обычные указатели.... В данном случае это указатель на i-ый байт строки. пхп аналог: $val = $pData[$i]

все логические операторы имеют тот же вид и ту же логику (и приоритеты), потому их переписываем без изменений.
конструкция $expr ? $ifTrue : $ifFalse есть и в php, потому её тоже переписываем как есть.
циклы имеют точно тот же синтаксис, переписываем без изменений.

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
function crc16($pData, $size = 0) // так как в пхп длину строки всегда можно узнать, параметр можно вообще удалить
{ 
  if($size==0) $size = strlen($pData); //если аргумент size удалить, то и условие тут надо будет убрать
  $crc16_result = 0x0000; 
  for($i=0; $i<$size; $i++) 
  { 
    $val = $pData[i]; 
    $crc16_result ^= $val; 
    for ($j = 0; $j < 8; $j++) 
    { 
      $crc16_result = ($crc16_result & 0x0001) ? ($crc16_result >> 1) ^ 0xA001 : $crc16_result >> 1; 
    } 
  } 
  return $crc16_result; 
} 
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / помогите перевести на php
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]