【发布时间】:2010-11-27 01:32:33
【问题描述】:
相信我,我尝试过编写此代码,尝试过 Google,但没有任何运气。 我正在尝试使用这个 poly 实现 CRC16
x^16 + x^10 + x^8 + x^7 + x^3 + 1
使用 C 语言。由于我对 PHP 的理解更好,我正在尝试运行一个函数,但我没有得到 28713 的正确答案。此代码生成的 CRC 为 32713。
function crc16($string,$crc=0) {
for ( $x=0; $x<strlen( $string ); $x++ ) {
$crc = $crc ^ ord( $string[$x] );
echo $crc.'<br />';
for ($y = 0; $y < 8 ; $y++) {
if ( ($crc & 0x0001) == 0x0001 ) $crc = ( ($crc >> 1 ) ^ 0x10589 );
else $crc = $crc >> 1;
}
}
return $crc;
}
echo 'CRC:'.crc16('10100011');
请大家帮忙解决这个问题..提前谢谢。
【问题讨论】: