Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
48
Task/CRC-32/PowerBASIC/crc-32.basic
Normal file
48
Task/CRC-32/PowerBASIC/crc-32.basic
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
#COMPILE EXE
|
||||
#DIM ALL
|
||||
#COMPILER PBCC 6
|
||||
|
||||
' ***********
|
||||
|
||||
FUNCTION CRC32(BYVAL p AS BYTE PTR, BYVAL NumBytes AS DWORD) AS DWORD
|
||||
STATIC LUT() AS DWORD
|
||||
LOCAL i, j, k, crc AS DWORD
|
||||
|
||||
IF ARRAYATTR(LUT(), 0) = 0 THEN
|
||||
REDIM LUT(0 TO 255)
|
||||
FOR i = 0 TO 255
|
||||
k = i
|
||||
FOR j = 0 TO 7
|
||||
IF (k AND 1) THEN
|
||||
SHIFT RIGHT k, 1
|
||||
k XOR= &HEDB88320
|
||||
ELSE
|
||||
SHIFT RIGHT k, 1
|
||||
END IF
|
||||
NEXT j
|
||||
LUT(i) = k
|
||||
NEXT i
|
||||
END IF
|
||||
|
||||
crc = &HFFFFFFFF
|
||||
|
||||
FOR i = 0 TO NumBytes - 1
|
||||
k = (crc AND &HFF& XOR @p[i])
|
||||
SHIFT RIGHT crc, 8
|
||||
crc XOR= LUT(k)
|
||||
NEXT i
|
||||
|
||||
FUNCTION = NOT crc
|
||||
END FUNCTION
|
||||
|
||||
' ***********
|
||||
|
||||
FUNCTION PBMAIN () AS LONG
|
||||
LOCAL s AS STRING
|
||||
LOCAL crc AS DWORD
|
||||
|
||||
s = "The quick brown fox jumps over the lazy dog"
|
||||
CON.PRINT "Text: " & s
|
||||
crc = CRC32(STRPTR(s), LEN(s))
|
||||
CON.PRINT "CRC32: " & HEX$(crc)
|
||||
END FUNCTION
|
||||
Loading…
Add table
Add a link
Reference in a new issue