当前位置:Gxlcms > PHP教程 > PHPCRC16校验码的算法怎么使用

PHPCRC16校验码的算法怎么使用

时间:2021-07-01 10:21:17 帮助过:24人阅读

PHP CRC16 校验码的算法如何使用
最近用到CRC16,

我现在就是要把 010301180001 算出CRC16的校验码,通过其他工具,可以得到 校验码是 05F1

最后完整的代码就是 01030118000105F1



我现在需要用php程序,写个函数,来计算这个 05F1 , 网上很难找到 php语言中的CRC16 应用实例,昨晚发现php.com官方有这样一个介绍。
http://cn.php.com/manual/en/function.crc32.php

PHP code


I made this code to verify Transmition with Vantage Pro2 ( weather station ) based on CRC16-CCITT standard.

>8) ^ ord($ptr[$i]))] ^ (($crc<<8) & 0x00FFFF);
    return $crc;
}
?>



以上的官方的例子, 我怎么把 010301180001 替换到$test里去, 到底是要先转成什么?

请高手帮我把这个 010301180001 应用一下,怎么得出 05F1

谢谢!




------解决方案--------------------
经测试,#1 的代码符合你的要求

测试代码
PHP code
$s = pack('H*', '010301180001');
$t = crc16(s);
printf('=%02x%02x', $t%256, floor($t/256));

------解决方案--------------------
$cs=sprintf('=%02x%02x', $t%256, floor($t/256));

人气教程排行