A-M baby
This commit is contained in:
parent
764da6cbbb
commit
db842d013d
19005 changed files with 197040 additions and 7 deletions
33
Task/CRC-32/Icon/crc-32.icon
Normal file
33
Task/CRC-32/Icon/crc-32.icon
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
link hexcvt,printf
|
||||
|
||||
procedure main()
|
||||
s := "The quick brown fox jumps over the lazy dog"
|
||||
a := "414FA339"
|
||||
printf("crc(%i)=%s - implementation is %s\n",
|
||||
s,r := crc32(s),if r == a then "correct" else "in error")
|
||||
end
|
||||
|
||||
procedure crc32(s) #: return crc-32 (ISO 3309, ITU-T V.42, Gzip, PNG) of s
|
||||
static crcL,mask
|
||||
initial {
|
||||
crcL := list(256) # crc table
|
||||
p := [0,1,2,4,5,7,8,10,11,12,16,22,23,26] # polynomial terms
|
||||
mask := 2^32-1 # word size mask
|
||||
every (poly := 0) := ior(poly,ishift(1,31-p[1 to *p]))
|
||||
every c := n := 0 to *crcL-1 do { # table
|
||||
every 1 to 8 do
|
||||
c := iand(mask,
|
||||
if iand(c,1) = 1 then
|
||||
ixor(poly,ishift(c,-1))
|
||||
else
|
||||
ishift(c,-1)
|
||||
)
|
||||
crcL[n+1] := c
|
||||
}
|
||||
}
|
||||
|
||||
crc := ixor(0,mask) # invert bits
|
||||
every crc := iand(mask,
|
||||
ixor(crcL[iand(255,ixor(crc,ord(!s)))+1],ishift(crc,-8)))
|
||||
return hexstring(ixor(crc,mask)) # return hexstring
|
||||
end
|
||||
2
Task/CRC-32/J/crc-32-1.j
Normal file
2
Task/CRC-32/J/crc-32-1.j
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
((i.32) e. 32 26 23 22 16 12 11 10 8 7 5 4 2 1 0) 128!:3 'The quick brown fox jumps over the lazy dog'
|
||||
_3199229127
|
||||
5
Task/CRC-32/J/crc-32-2.j
Normal file
5
Task/CRC-32/J/crc-32-2.j
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
(2^32x)|((i.32) e. 32 26 23 22 16 12 11 10 8 7 5 4 2 1 0) 128!:3 'The quick brown fox jumps over the lazy dog'
|
||||
1095738169
|
||||
require'convert'
|
||||
hfd (2^32x)|((i.32) e. 32 26 23 22 16 12 11 10 8 7 5 4 2 1 0) 128!:3 'The quick brown fox jumps over the lazy dog'
|
||||
414FA339
|
||||
2
Task/CRC-32/Mathematica/crc-32.mathematica
Normal file
2
Task/CRC-32/Mathematica/crc-32.mathematica
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
IntegerString[Hash["The quick brown fox jumps over the lazy dog", "CRC32"], 16, 8]
|
||||
-> "414fa339"
|
||||
Loading…
Add table
Add a link
Reference in a new issue