CRC16

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

CRC16

Сообщение Zer » 02.11.2004 (Вт) 21:51

Люди добрые! Очень надо метод подсчета CRC16 на VB.
И вот ещё:почему 65535 XOR 40961 равно 106497 :?:
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 02.11.2004 (Вт) 23:35

Насчет второго - неправильно. Должно быть 24574, попробуй перевести в бинарную запись и посчитай. У меня, как и у калькулятора получается именно такой результат.
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.11.2004 (Ср) 9:19

Вот, что нашёл Яндекс при первом же запросе "CRC16 VB":

http://www.vbnet.ru/forum/show.aspx?id=21862

Я не пойму, что это так все Яндекса боятся? Или счётчик накручивают? :wink:

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Re: CRC16

Сообщение Ennor » 03.11.2004 (Ср) 11:23

Zer писал(а):...
почему 65535 XOR 40961 равно 106497 :?:

Потому что у тебя эти числа сидят в Long, видимо. Перемести их в Integer, и результат получай в него же, и все тебе будет...

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 03.11.2004 (Ср) 18:14

Oxygen: Вот именно! На калькуляторе у меня тоже получилось 24574, а в программе за 100000! :shock:
Ennor:Верно, числа long. А Int - определяется как знаковое, т.е. <=32767.
Большое спасибо всем ответевшим. Жаль что не вчера. Сегодня уже поздно.
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 04.11.2004 (Чт) 0:18

Если боишься отрицательных чисел :) - можешь производить все операции в Long, но в конце брать только 2 младших байта:
Код: Выделить всё
lngResult = (lngA Xor lngB) And &HFFFF

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 04.11.2004 (Чт) 18:47

Собственно, так и пришлось сделать...
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 6

    TopList