--
Вы получили это сообщение, поскольку подписаны на группу Erlang по-русски.
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес erlang-russia...@googlegroups.com.
Чтобы добавлять сообщения в эту группу, отправьте письмо по адресу erlang-...@googlegroups.com.
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
Eshell V5.10.3 (abort with ^G)1> crc:crc16(<<1,2,3>>).249292> crc16:calc(<<1,2,3>>).249293> crc:crc16(<<1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0>>).537504> crc16:calc(<<1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0>>).631855> integer_to_list(53750, 16)."D1F6"6> integer_to_list(63185, 16)."F6D1"
Выходит, что для достаточно длинных последовательностей меняются местами байты.
пятница, 6 декабря 2013 г., 23:26:10 UTC+4 пользователь Max Lapshin написал:Только вот у меня не сходятся цифры из nif и из crc16.erl
--
Вы получили это сообщение, поскольку подписаны на группу Erlang по-русски.
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес erlang-russia...@googlegroups.com.
Чтобы добавлять сообщения в эту группу, отправьте письмо по адресу erlang-...@googlegroups.com.
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
Оффтоп:
1> integer_to_list(24929, 16).
"6161"
Вероятно тут тоже меняется.
Очень похоже на использование в одном случае little (C/C++), а в другом - big endian (Erlang)
Если нужно считать хеш от многих мегабайт (или даже гигабайт) данных, использование NIF сразу на всем блобе вызовет пичальку в шедулере. Имеет смысл еще в эрланге нарезать ввод на фрагменты нужной длины, и скармливать их NIFу