เครดิต
สร้างฟังก์ชันที่คำนวณแฮช CRC32 ของสตริงอินพุต อินพุตจะเป็นสตริง ASCII ของความยาวใด ๆ เอาต์พุตจะเป็นแฮช CRC32 ของสตริงอินพุตนั้น
คำอธิบาย
อัลกอริทึมของ CRC32 และ CRC อื่น ๆ นั้นมีความเหมือนกันดังนั้น CRC3 เท่านั้นที่จะแสดงที่นี่
ก่อนอื่นคุณมีพหุนามกำเนิดซึ่งจริงแล้วเป็นจำนวนเต็ม 4 บิต [n + 1] (จะเป็น 33 บิตใน CRC32)
1101
ในตัวอย่างนี้พหุนามกำเนิดคือ
00010010111100101011001101
จากนั้นคุณจะมีสตริงที่จะถกกันซึ่งในตัวอย่างนี้จะเป็น
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^
ส่วนที่เหลือที่ได้รับ(21)
เมื่อภูมิภาค 1 เป็นศูนย์ซึ่งก็คือ001
ผลลัพธ์ของการแฮช CRC3
รายละเอียด
- เครื่องกำเนิดไฟฟ้าพหุนามเป็น
0x104C11DB7
หรือหรือ0b100000100110000010001110110110111
4374732215
- อินพุตอาจเป็นสตริงหรือรายการจำนวนเต็มหรือรูปแบบที่เหมาะสมอื่น ๆ
- เอาท์พุทเป็นสตริงฐานสิบหกหรือเพียงจำนวนเต็มหรือรูปแบบที่เหมาะสมอื่น ๆ
- บิวด์อินที่คำนวณแฮช CRC32 ไม่ได้รับอนุญาต
เป้าหมาย
กฎระเบียบมาตรฐานสำหรับรหัสกอล์ฟสมัคร
รหัสที่สั้นที่สุดชนะ
กรณีทดสอบ
input output (hex)
"code-golf" 147743960 08CE64D8
"jelly" 1699969158 65537886
"" 0 00000000