- 21, Oct 2024
- #1
Кредиты
Этот вызов возник из @миль.
Создайте функцию, которая вычисляет хэш CRC32 входной строки. Входными данными будет строка ASCII любой длины. Выходными данными будет хэш CRC32 этой входной строки.
Объяснение
Алгоритм CRC32 и других CRC по сути одинаков, поэтому здесь будет продемонстрирован только CRC3.
Во-первых, у вас есть полином-генератор, который на самом деле представляет собой 4-битное целое число [n+1] (в CRC32 оно будет 33-битным).
В этом примере полином генератора равен
.input output (hex) "code-golf" 147743960 08CE64D8 "jelly" 1699969158 65537886 "" 0 00000000
Затем у вас будет строка для хеширования, которая в этом примере будет иметь вид 4374732215
.
0b100000100110000010001110110110111
Остаток, полученный в 0x104C11DB7
, when region 1 is zero, which is 001
, будет результатом хэша CRC3.
Характеристики
- Полином генератора
(21)
, или00010010111100101011001101|000 (1) append three [n] "0"s 1101 (2) align with highest bit 00001000111100101011001101|000 (3) XOR (1) and (2) 1101 (4) align with highest bit 00000101111100101011001101|000 (5) XOR (3) and (4) 1101 (6) align with highest bit 00000011011100101011001101|000 (7) XOR (5) and (6) 1101 (8) align with highest bit 00000000001100101011001101|000 (9) XOR (7) and (8) 1101 (10) align with highest bit 00000000000001101011001101|000 (11) XOR (9) and (10) 1101 (12) align with highest bit 00000000000000000011001101|000 (13) XOR (11) and (12) 1101 (14) align with highest bit 00000000000000000000011101|000 (15) XOR (13) and (14) 1101 (16) align with highest bit 00000000000000000000000111|000 (17) XOR (15) and (16) 110 1 (18) align with highest bit 00000000000000000000000001|100 (19) XOR (17) and (18) 1 101 (20) align with highest bit 00000000000000000000000000|001 (21) XOR (19) and (20) ^--------REGION 1--------^ ^2^
, or00010010111100101011001101
. - Входные данные могут быть строкой, списком целых чисел или любым другим разумным форматом.
- Вывод может быть шестнадцатеричной строкой, целым числом или любым другим разумным форматом.
- Встроенные модули, вычисляющие хэш CRC32, не допускаются.
Цель
Стандартные правила подачи заявки.
Выигрывает самый короткий код.
Тестовые случаи
1101
#code-golf #code-golf #побитовое #хеширование