尝试将 PHP 转换为 Perl 时遇到问题。这些代码:
<form action="" method="post">
Hex: <input type="text" name="crc"> e.g : 08 13 4B 04 03 00 01 00 11
<br>
<br>
<input type="submit" name="submit" value="submit"></form>
<?php
函数 PHP
function crc($data) {
$content = explode(' ',$data) ;
$len = count($content) ;
$n = 0 ;
$crc = 0xFFFF;
while ($len > 0)
{
$crc ^= hexdec($content[$n]) ;
for ($i=0; $i<8; $i++) {
if ($crc & 1) $crc = ($crc >> 1) ^ 0x8408;
else $crc >>= 1;
}
$n++ ;
$len-- ;
}
return(~$crc);
}
如果不是空的
if (!empty($_POST["submit"]))
{
echo "Input = ".$_POST["crc"].'<br>';
$crc = crc($_POST["crc"]) ;
结果
echo "<br>Result: <br>";
echo "Dec = ".$crc.'<br>' ;
echo 'Dec - hex = '.dechex($crc).'<br>' ;
echo 'Checksum = '.str_replace('ffff','',dechex($crc)).'<br>' ;
}
?>
这是关于校验和的。它在 PHP 上运行良好,但在 perl 中却不行。请给我解决方案。谢谢。