Data update
This commit is contained in:
parent
81fd053722
commit
52a6ef48dd
10248 changed files with 63654 additions and 6775 deletions
27
Task/CRC-32/Sidef/crc-32.sidef
Normal file
27
Task/CRC-32/Sidef/crc-32.sidef
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
func create_crc32_table {
|
||||
256.of {|k|
|
||||
8.times {
|
||||
if (k & 1) {
|
||||
k >>= 1
|
||||
k ^= 0xedb88320
|
||||
}
|
||||
else {
|
||||
k >>= 1
|
||||
}
|
||||
}
|
||||
k
|
||||
}
|
||||
}
|
||||
|
||||
func crc32(str, crc = 0) {
|
||||
static crc_table = create_crc32_table()
|
||||
crc &= 0xffffffff
|
||||
crc ^= 0xffffffff
|
||||
str.codes.each {|c|
|
||||
crc = ((crc >> 8) ^ crc_table[(crc & 0xff) ^ c])
|
||||
}
|
||||
return ((crc & 0xffffffff) ^ 0xffffffff)
|
||||
}
|
||||
|
||||
say crc32("The quick brown fox jumps over the lazy dog").as_hex
|
||||
say crc32("over the lazy dog", crc32("The quick brown fox jumps ")).as_hex
|
||||
Loading…
Add table
Add a link
Reference in a new issue