Schrift
[thread]6773[/thread]

Checksummenberechnung CRC16



<< >> 2 Einträge, 1 Seite
Gast Gast
 2005-03-09 19:09
#52465 #52465
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:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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-->
renee
 2005-03-09 20:07
#52466 #52466
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Woher hast Du die 0801??
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 2 Einträge, 1 Seite



View all threads created 2005-03-09 19:09.