|
- .版本 2
- .支持库 spec
- .程序集 窗口程序集_启动窗口
- .程序集变量 table, 整数型, , "256"
- .子程序 _启动子程序, 整数型
- .局部变量 文件号, 整数型
- CRC32初始化 ()
- 调试输出 (计算crc32 ({ 255, 255, 255, 255, 255 }))
- 返回 (0)
- .子程序 CRC32初始化
- .局部变量 crc, 整数型
- .局部变量 i, 整数型
- .变量循环首 (0, 255, 1, i)
- crc = i
- .变量循环首 (0, 7, 1, )
- .如果 (位与 (crc, 1) ≠ 0)
- crc = 位异或 (位与 (右移 (crc, 1), 2147483647), 3988292384)
- .否则
- crc = 位与 (右移 (crc, 1), 2147483647)
- .如果结束
- .变量循环尾 ()
- table [i + 1] = crc
- .变量循环尾 ()
- .子程序 计算crc32, 文本型, 公开, 用于取crc32,结果为16进制文本
- .参数 字节集数据, 字节集, , 要取CRC32数据字节集
- .局部变量 crcval, 整数型
- .局部变量 长度, 整数型
- .局部变量 i, 整数型
- .局部变量 结果, 文本型
- .局部变量 位置, 整数型
- 长度 = 取字节集长度 (字节集数据)
- crcval = 4294967295
- .计次循环首 (长度, i)
- 位置 = 位异或 (字节集数据 [i], 位与 (crcval, 255)) + 1
- crcval = 位异或 (位与 (右移 (crcval, 8), 16777215), table [位置])
- .计次循环尾 ()
- 返回 (取十六进制文本 (位取反 (crcval)))
复制代码
|
|