Hallo,
ich habe ein Problem mit der CRC16 Berechnung. wenn ich die Checksumme eines wertes (z.B. 011000ce000204999a41c1) berechne, fehlen mir, wenn vorhanden, führende Nullen z.B. 0801 wird zu 81. wie kann ich das umgehen?
Gibt es gute Alternativen zu Digest::CRC?
Vielen Dank
ratz
Code:
sub crc16
{
my($crc) = @_;
my $length = length($crc);
$crc = pack("H$length", $crc);
$ctx = Digest::CRC->new(type => "crc16");
$ctx->add($crc);
$ctx = Digest::CRC->new(width => 16, init => 0xFFFF,
xorout => 0x0000, poly => 0x8005, refin => 1, refout => 1);
$ctx->add($crc);
my @crc = split //,$ctx->hexdigest;
my $crc = join "",@crc[2,3,0,1];
return $crc;
}
\n\n
<!--EDIT|renee|1110391687-->