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 では動作しません。解決策を教えてください。ありがとう。