Jump to content

CRC-32: Difference between revisions

8 bytes removed ,  3 years ago
m
(added Ol)
Line 1,410:
<lang scheme>
(define (crc32 str)
(vm:xorbxor #xFFFFFFFF
(fold (lambda (crc char)
(let loop ((n 8) (crc crc) (bits char))
(if (eq? n 0)
crc
(let*((flag (vm:andband (vm:xorbxor bits crc) 1))
(crc (>> crc 1))
(crc (if (eq? flag 0) crc (vm:xorbxor crc #xEDB88320)))
(bits (>> bits 1)))
(loop (- n 1) crc bits)))))
Cookies help us deliver our services. By using our services, you agree to our use of cookies.