我正在尝试使用PHP CRC16 CCITT函数来计算校验和.

设备发送给我一个包含Checksum的PACKET:

10 00 00 00 00 00 00 00 12 51 09 08 00 18 00 04 02 14 00 0c 00 0c 02

1c 00 02 00 00 00 00 00 00 a0 77

校验和在最后:a0 77

我试过用了

没有成功,CRC 16计算返回:E6 F4而不是a0 77

当我查找时,我得到了正确的Hex信息:

100000000000000012510908001800040214000c000c021c0002000000000000

能否帮我弄清楚如何获得十六进制值字符串的crc16 CCITT

100000000000000012510908001800040214000c000c021c0002000000000000

我正在寻找校验和a0 77

解决方法:

我能够生成相同的校验和,实现如下:

define('CRC16POLYN', 0x1021);

function CRC16Normal($buffer) {

$result = 0xFFFF;

if (($length = strlen($buffer)) > 0) {

for ($offset = 0; $offset < $length; $offset++) {

$result ^= (ord($buffer[$offset]) << 8);

for ($bitwise = 0; $bitwise < 8; $bitwise++) {

if (($result <<= 1) & 0x10000) $result ^= CRC16POLYN;

$result &= 0xFFFF;

}

}

}

return $result;

}

echo dechex(CRC16Normal(hex2bin('100000000000000012510908001800040214000c000c021c0002000000000000')));

上面给出了a77的输出.

标签:php,hex,crc,crc16

来源: https://codeday.me/bug/20190628/1317337.html

php crc16计算,如何在PHP HEX中计算CRC16 CCITT?相关推荐

  1. 在html表格中进行计算,如何在word表格中实现计算功能?超级实用,值得细细品味...

    常听同事们说:word就是文字处理,excel就是制表计算.乍一听,也没什么不妥啊,但细细一想,这是对word很大的伤害. 今天得改改这种看法了,其实,word表格也有计算功能,例如:在财务报表.工资 ...

  2. excel表格计算年龄_在Excel中计算年龄

    excel表格计算年龄 Can you remember how old you are? Or are you like me, and have to ask, "What year i ...

  3. java gps 距离计算_Java教程之地图中计算两个GPS坐标点的距离

    原标题:Java教程之地图中计算两个GPS坐标点的距离 在日常开发中,我们难免要计算两个左边之间的距离,但是地图软件api的接口普遍要求我们必须要先将坐标点传递到他们服务器,然后计算出一个距离返还给我 ...

  4. php crc16校验算法,PHP串口通信中计算crc16校验码

    最近使用PHP开发串口通信业务,在发送485Modbus命令时,基本都要计算CRC16校验码.网上搜索了很多文章,很多都计算的不对.本文记录搜索到的正确的计算方法. 代码如下:/** * crc16计 ...

  5. 如何在 Entity Framework 中计算 时间差 ?

    咨询区 ison 我的项目中有一个需求,需要使用 Entity Framework 实现 日期差 的计算逻辑,参考如下代码: var now = DateTime.UtcNow;db.Items.Or ...

  6. c# 整数除法取整_如何在C#中计算整数的除法和取模?

    有趣的事实! "取模"操作定义为: a % n ==> a - (a/n) * n 因此,您可以自己滚动,尽管它的FAR速度比内置的%运算符慢: public static ...

  7. python求年利率_python-3.x - 如何在python 3中计算年利率 - SO中文参考 - www.soinside.com...

    这是代码:P = int(input("Enter starting principle please.\n")) n = int(input("Enter Compou ...

  8. python 跳过计算错误_在python中计算分数时如何跳过被0除的错误?

    我正在运行一个很长的CSV文件下面的函数.函数每50行计算列MFE的Z分数.这50行中有一些只包含零,因此在计算Zscore时,程序会停止,因为它不能被零除.如何解决这个问题,而不是停止程序运行打印这 ...

  9. 散点图 计算 java_怎么在excel中计算散点图的公式

    展开全部 定积e69da5e6ba9062616964757a686964616f31333339653831分的几何意义就是求曲线下面积,在Excel中可以: ① 使用Excel的图表将离散点用XY ...

最新文章

  1. 大咖专栏|拨云见月,专注于深度学习本身
  2. win7与ubuntu 13.04 64位双系统安装介绍
  3. springboot的jsp应该放在哪_详解SpringBoot 添加对JSP的支持(附常见坑点)
  4. linux 自定义shell命令,如何在Linux中自定义bash命令提示符
  5. boost::hana::none用法的测试程序
  6. leetcode 904:水果成篮(滑动窗口)
  7. 【VBS】IE11如何运行 Visual Basic Script 程序
  8. 计算火车运行时间(pta)
  9. python实现雪花动态图_如何通过雪花算法用Python实现一个简单的发号器
  10. CF321E Ciel and Gondolas BZOJ 5311 贞鱼
  11. Webpack5构建微前端和Web应用程序2022教程
  12. Leetcode 884. 两句话中的不常见单词
  13. 奥特曼html代码,和平精英捏脸代码奥特曼
  14. Html Table 合并单元格
  15. 对比SQL学习power bi--(2)表关联顺序!
  16. mysql 中间件 atlas_MySQL中间件-Atlas
  17. mybatis-plus使用乐观锁插件
  18. java计算机毕业设计智慧校园学生选宿系统源码+mysql数据库+系统+部署+lw文档
  19. 数学建模查找资料的方法以及网站
  20. 并发编程02-什么是线程安全以及Java虚拟机中哪些数据是线程共享的,那些是线程私有的

热门文章

  1. python从云端服务器读数据_云服务器简单实现Python自动运维
  2. php找零页面,JS实现找零张数最小
  3. 微信公众平台对接C#-普通消息接收
  4. ListView双击的行
  5. DL | TensorFlow代码调试
  6. 状态码中400错误和405错误怎么解决
  7. 7-7 国王的金币 (10 分)
  8. redis 失效时间单位是秒还是毫秒_经常用Redis,这些坑你知道吗?
  9. 笛卡尔积实现-JavaScript版
  10. C语言口求整除x与y的余数,取余或取模运算小结