Это работает в протоколе Меркурий, соответствует алгоритмам производителя. В принципе, если применять в чем-то другом, то можно и посравнивать остальное. Здесь же достаточно того, что это работает как ожидается.
Если сравнить "влоб" с алгоритмом в статье https://habr.com/ru/articles/418209/ , то на некоторых последовательностях результат не тот, что ожидается:
Result crc16fast: [34, 17, 113, 181, 160, 255, 200]
Result crc16full: [34, 17, 113, 181, 160, 195, 191, 200]
UCS-2 тот самый камень, из-за чего вместимость со 160 латинских символов уменьшается до 70 кириллических. Как прочел в какой-то статье, UCS-2 - частный случай utf-16, но не тоже самое.
Это работает в протоколе Меркурий, соответствует алгоритмам производителя. В принципе, если применять в чем-то другом, то можно и посравнивать остальное. Здесь же достаточно того, что это работает как ожидается.
Если сравнить "влоб" с алгоритмом в статье https://habr.com/ru/articles/418209/ , то на некоторых последовательностях результат не тот, что ожидается:
Result crc16fast: [34, 17, 113, 181, 160, 255, 200]
Result crc16full: [34, 17, 113, 181, 160, 195, 191, 200]
Result crc16fast: [1, 0, 36, 176, 1, 237, 203]
Result crc16full: [1, 0, 36, 176, 1, 237, 203, 0, 0]
Result crc16fast: [113, 170, 0, 24, 36, 115, 200]
Result crc16full: [113, 170, 0, 24, 36, 115, 200]
UCS-2 тот самый камень, из-за чего вместимость со 160 латинских символов уменьшается до 70 кириллических. Как прочел в какой-то статье, UCS-2 - частный случай utf-16, но не тоже самое.
А почему бы и да? )
История была коротка, как жизнь мотылька. Обновил статью, добавил пример.