免扫码快速登录设为首页收藏本站帮助中心
查看: 549|回复: 3
收起左侧

易语言计算CRC32算法纯源码

[复制链接]
发表于 2017-6-10 19:31:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?加入我们

x
  1. .版本 2
  2. .支持库 spec

  3. .程序集 窗口程序集_启动窗口
  4. .程序集变量 table, 整数型, , "256"

  5. .子程序 _启动子程序, 整数型
  6. .局部变量 文件号, 整数型

  7. CRC32初始化 ()
  8. 调试输出 (计算crc32 ({ 255, 255, 255, 255, 255 }))
  9. 返回 (0)

  10. .子程序 CRC32初始化
  11. .局部变量 crc, 整数型
  12. .局部变量 i, 整数型

  13. .变量循环首 (0, 255, 1, i)
  14.     crc = i
  15.     .变量循环首 (0, 7, 1, )
  16.         .如果 (位与 (crc, 1) ≠ 0)
  17.             crc = 位异或 (位与 (右移 (crc, 1), 2147483647), 3988292384)
  18.         .否则
  19.             crc = 位与 (右移 (crc, 1), 2147483647)

  20.         .如果结束

  21.     .变量循环尾 ()
  22.     table [i + 1] = crc
  23. .变量循环尾 ()




  24. .子程序 计算crc32, 文本型, 公开, 用于取crc32,结果为16进制文本
  25. .参数 字节集数据, 字节集, , 要取CRC32数据字节集
  26. .局部变量 crcval, 整数型
  27. .局部变量 长度, 整数型
  28. .局部变量 i, 整数型
  29. .局部变量 结果, 文本型
  30. .局部变量 位置, 整数型

  31. 长度 = 取字节集长度 (字节集数据)
  32. crcval = 4294967295
  33. .计次循环首 (长度, i)
  34.     位置 = 位异或 (字节集数据 [i], 位与 (crcval, 255)) + 1
  35.     crcval = 位异或 (位与 (右移 (crcval, 8), 16777215), table [位置])
  36. .计次循环尾 ()
  37. 返回 (取十六进制文本 (位取反 (crcval)))
复制代码


相关帖子

回复

使用道具 举报

发表于 2017-7-3 17:29:36 | 显示全部楼层
不错不错。帮忙暖(水)贴。消灭零回复。其实单纯的发代码外加点文字,比如对crc的介绍啊什么的,会让文章润色不少。
回复 支持 反对

使用道具 举报

发表于 2017-9-22 16:48:01 来自手机 | 显示全部楼层
demon 发表于 2017-7-3 17:29
不错不错。帮忙暖(水)贴。消灭零回复。其实单纯的发代码外加点文字,比如对crc的介绍啊什么的,会 ...

讲的话也应该很难弄懂。
回复 支持 反对

使用道具 举报

发表于 2017-10-24 10:15:00 | 显示全部楼层
这源码应该是某易模块里面的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则