32 bits crc
32 bits CRC compatible avec ZIP et ARJ
Contributeur: SWAG ÉQUIPE de SUPPORT
{
> j'ai été un peu en espérant être introduit vers un nom de Fichier j'ai pu trouver
> qui permettrait de faire ce dont j'ai besoin. (Produit de 32 bits CRC & #39 s qui sont compatibles
> Avec PKZIP & #39 s de sortie).
j'ai accroché cette de cette écho il y a quelques temps. Il ne CRC32
en utilisant uniquement des TP À l'aide d'une table précalculée.
Il n'procduce CRC32 valeurs qui sont les mêmes que PKZIP et ARJ.
& & & & & & & & & & - Unité CRC32C.PAS 8< & & & & & & & & & & & -
{ Modifiée à partir d'une version affichée sur le Pascal écho par Étage
A. C. Naaijkens (note de l'introduction d'une Constante et d'une
Fonction et de faire le Tableau d'une Constante à l'extérieur de
crc32 (), ce qui devrait améliorer la vitesse beaucoup plus loin
il est fait référence à une version en C dans un Fichier de des Extraits de l'
(112 min à gauche), (H)le pel, Plus? C Echo marqué comme 'le droit d'Auteur (C) 1986 Gary S. Brown' (principalement pour les
comparer les Tableaux de grande taille, qui s'est avéré être identiques), et de
'vérification des Fichiers à l'aide de CRC' par Mark R. Nelson Dr Dobbs & #39
Journal, Mai 1992. Le dernier est le morceau final de
des informations cruciales. Utilisation: 1) Créer un LongInt Variable Pour le
valeur CRC 2) Initialiser ce Avec CRCSeed 3) renforcer la
CRC octet par Octet Avec CRC32() 4) Terminer Avec CRCend()
(c'est la partie que j'ai trouvé dans Nelson). Le résultat est un CRC
valeur identique à celle calculée par PKZip et ARJ.
}
Unité de CRC32c
Interface
Const
CRCSeed = $ffffffff
CRC32tab : Array[0..255] de LongInt = (
$00000000, $77073096, $ee0e612c, $990951ba, $076dc419, $706af48f,
$e963a535, $9e6495a3, $0edb8832, $79dcb8a4, $e0d5e91e, $97d2d988,
$09b64c2b, $7eb17cbd, $e7b82d07, $90bf1d91, $1db71064, $6ab020f2,
$f3b97148, $84be41de, $1adad47d, $6ddde4eb, $f4d4b551, $83d385c7,
$136c9856, $646ba8c0, $fd62f97a, $8a65c9ec, $14015c4f, $63066cd9,
$fa0f3d63, $8d080df5, $3b6e20c8, $4c69105e, $d56041e4, $a2677172,
$3c03e4d1, $4b04d447, $d20d85fd, $a50ab56b, $35b5a8fa, $42b2986c,
$dbbbc9d6, $acbcf940, $32d86ce3, $45df5c75, $dcd60dcf, $abd13d59,
$26d930ac, $51de003a, $c8d75180, $bfd06116, $21b4f4b5, $56b3c423,
$cfba9599, $b8bda50f, $2802b89e, $5f058808, $c60cd9b2, $b10be924,
$2f6f7c87, $58684c11, $c1611dab, $b6662d3d, $76dc4190, $01db7106,
$98d220bc, $efd5102a, $71b18589, $06b6b51f, $9fbfe4a5, $e8b8d433,
$7807c9a2, $0f00f934, $9609a88e, $e10e9818, $7f6a0dbb, $086d3d2d,
$91646c97, $e6635c01, $6b6b51f4, $1c6c6162, $856530d8, $f262004e,
$6c0695ed, $1b01a57b, $8208f4c1, $f50fc457, $65b0d9c6, $12b7e950,
$8bbeb8ea, $fcb9887c, $62dd1ddf, $15da2d49, $8cd37cf3, $fbd44c65,
$4db26158, $3ab551ce, $a3bc0074, $d4bb30e2, $4adfa541, $3dd895d7,
$a4d1c46d, $d3d6f4fb, $4369e96a, $346ed9fc, $ad678846, $da60b8d0,
$44042d73, $33031de5, $aa0a4c5f, $dd0d7cc9, $5005713c, $270241aa,
$be0b1010, $c90c2086, $5768b525, $206f85b3, $b966d409, $ce61e49f,
$5edef90e, $29d9c998, $b0d09822, $c7d7a8b4, $59b33d17, $2eb40d81,
$b7bd5c3b, $c0ba6cad, $edb88320, $9abfb3b6, $03b6e20c, $74b1d29a,
$ead54739, $9dd277af, $04db2615, $73dc1683, $e3630b12, $94643b84,
$0d6d6a3e, $7a6a5aa8, $e40ecf0b, $9309ff9d, $0a00ae27, $7d079eb1,
$f00f9344, $8708a3d2, $1e01f268, $6906c2fe, $f762575d, $806567cb,
$196c3671, $6e6b06e7, $fed41b76, $89d32be0, $10da7a5a, $67dd4acc,
$f9b9df6f, $8ebeeff9, $17b7be43, $60b08ed5, $d6d6a3e8, $a1d1937e,
$38d8c2c4, $4fdff252, $d1bb67f1, $a6bc5767, $3fb506dd, $48b2364b,
$d80d2bda, $af0a1b4c, $36034af6, $41047a60, $df60efc3, $a867df55,
$316e8eef, $4669be79, $cb61b38c, $bc66831a, $256fd2a0, $5268e236,
$cc0c7795, $bb0b4703, $220216b9, $5505262f, $c5ba3bbe, $b2bd0b28,
$2bb45a92, $5cb36a04, $c2d7ffa7, $b5d0cf31, $2cd99e8b, $5bdeae1d,
$9b64c2b0, $ec63f226, $756aa39c, $026d930a, $9c0906a9, $eb0e363f,
$72076785, $05005713, $95bf4a82, $e2b87a14, $7bb12bae, $0cb61b38,
$92d28e9b, $e5d5be0d, $7cdcefb7, $0bdbdf21, $86d3d2d4, $f1d4e242,
$68ddb3f8, $1fda836e, $81be16cd, $f6b9265b, $6fb077e1, $18b74777,
$88085ae6, $ff0f6a70, $66063bca, $11010b5c, $8f659eff, $f862ae69,
$616bffd3, $166ccf45, $a00ae278, $d70dd2ee, $4e048354, $3903b3c2,
$a7672661, $d06016f7, $4969474d, $3e6e77db, $aed16a4a, $d9d65adc,
$40df0b66, $37d83bf0, $a9bcae53, $debb9ec5, $47b2cf7f, $30b5ffe9,
$bdbdf21c, $cabac28a, $53b39330, $24b4a3a6, $bad03605, $cdd70693,
$54de5729, $23d967bf, $b3667a2e, $c4614ab8, $5d681b02, $2a6f2b94,
$b40bbe37, $c30c8ea1, $5a05df1b, $2d02ef8d )
Fonction de CRC32(valeur: Octet crc: LongInt) : LongInt
Fonction de CRCend( crc : LongInt ) : LongInt
la mise en Œuvre
la Fonction CRC32(valeur: Octet crc: LongInt) : LongInt
begin
CRC32 := CRC32tab[Byte(crc xor LongInt(valeur))] xor
((crc shr 8) et $00ffffff)
fin
la Fonction CRCend( crc : LongInt ): LongInt
begin
CRCend := (crc xor CRCSeed)
fin
à la fin.
{
Maintenant à l'utiliser...
Avec un LongInt Variable, par exemple vCRC32, premier de la graine, il
vCRC32 := CRCSeed
Puis aller de l'Octet-par-Octet thorugh pour calculer:
P := 1 à Taille FAIRE
vCRC32 := CRC32(Octets[P], vCRC32)
Puis il finir Avec CRCend
vCRC32 := CRCend(vCRC32)
Vous devriez être capable d'Écrire votre propre Dec2Hex Fonction =)
}
32 bits crc
32 bits crc : Plusieurs milliers de conseils pour vous faciliter la vie.
32 bits CRC compatible avec ZIP et ARJ
Contributeur: SWAG EQUIPE de SUPPORT
{
> j'ai ete un peu en esperant etre introduit vers un nom de Fichier j'ai pu trouver
> qui permettrait de faire ce dont j'ai besoin. (Produit de 32 bits CRC & #39 s qui sont compatibles
> Avec PKZIP & #39 s de sortie).
j'ai accroche cette de cette echo il y a quelques temps. Il ne CRC32
en utilisant uniquement des TP A l'aide d'une table precalculee.
Il n'procduce CRC32 valeurs qui sont les memes que PKZIP et ARJ.
& & & & & & & & & & - Unite CRC32C.PAS 8< & & & & & & & & & & & -
{ Modifiee a partir d'une version affichee sur le Pascal echo par Etage
A. C. Naaijkens (note de l'introduction d'une Constante et d'une
Fonction et de faire le Tableau d'une Constante a l'exterieur de
crc32 (), ce qui devrait ameliorer la vitesse beaucoup plus loin
il est fait reference a une version en C dans un Fichier de des Extraits de l'
(112 min a gauche), (H)le pel, Plus? C Echo marque comme 'le droit d'Auteur (C) 1986 Gary S. Brown' (principalement pour les
comparer les Tableaux de grande taille, qui s'est avere etre identiques), et de
'verification des Fichiers a l'aide de CRC' par Mark R. Nelson Dr Dobbs & #39
Journal, Mai 1992. Le dernier est le morceau final de
des informations cruciales. Utilisation: 1) Creer un LongInt Variable Pour le
valeur CRC 2) Initialiser ce Avec CRCSeed 3) renforcer la
CRC octet par Octet Avec CRC32() 4) Terminer Avec CRCend()
(c'est la partie que j'ai trouve dans Nelson). Le resultat est un CRC
valeur identique a celle calculee par PKZip et ARJ.
}
Unite de CRC32c
Interface
Const
CRCSeed = $ffffffff
CRC32tab : Array[0..255] de LongInt = (
$00000000, $77073096, $ee0e612c, $990951ba, $076dc419, $706af48f,
$e963a535, $9e6495a3, $0edb8832, $79dcb8a4, $e0d5e91e, $97d2d988,
$09b64c2b, $7eb17cbd, $e7b82d07, $90bf1d91, $1db71064, $6ab020f2,
$f3b97148, $84be41de, $1adad47d, $6ddde4eb, $f4d4b551, $83d385c7,
$136c9856, $646ba8c0, $fd62f97a, $8a65c9ec, $14015c4f, $63066cd9,
$fa0f3d63, $8d080df5, $3b6e20c8, $4c69105e, $d56041e4, $a2677172,
$3c03e4d1, $4b04d447, $d20d85fd, $a50ab56b, $35b5a8fa, $42b2986c,
$dbbbc9d6, $acbcf940, $32d86ce3, $45df5c75, $dcd60dcf, $abd13d59,
$26d930ac, $51de003a, $c8d75180, $bfd06116, $21b4f4b5, $56b3c423,
$cfba9599, $b8bda50f, $2802b89e, $5f058808, $c60cd9b2, $b10be924,
$2f6f7c87, $58684c11, $c1611dab, $b6662d3d, $76dc4190, $01db7106,
$98d220bc, $efd5102a, $71b18589, $06b6b51f, $9fbfe4a5, $e8b8d433,
$7807c9a2, $0f00f934, $9609a88e, $e10e9818, $7f6a0dbb, $086d3d2d,
$91646c97, $e6635c01, $6b6b51f4, $1c6c6162, $856530d8, $f262004e,
$6c0695ed, $1b01a57b, $8208f4c1, $f50fc457, $65b0d9c6, $12b7e950,
$8bbeb8ea, $fcb9887c, $62dd1ddf, $15da2d49, $8cd37cf3, $fbd44c65,
$4db26158, $3ab551ce, $a3bc0074, $d4bb30e2, $4adfa541, $3dd895d7,
$a4d1c46d, $d3d6f4fb, $4369e96a, $346ed9fc, $ad678846, $da60b8d0,
$44042d73, $33031de5, $aa0a4c5f, $dd0d7cc9, $5005713c, $270241aa,
$be0b1010, $c90c2086, $5768b525, $206f85b3, $b966d409, $ce61e49f,
$5edef90e, $29d9c998, $b0d09822, $c7d7a8b4, $59b33d17, $2eb40d81,
$b7bd5c3b, $c0ba6cad, $edb88320, $9abfb3b6, $03b6e20c, $74b1d29a,
$ead54739, $9dd277af, $04db2615, $73dc1683, $e3630b12, $94643b84,
$0d6d6a3e, $7a6a5aa8, $e40ecf0b, $9309ff9d, $0a00ae27, $7d079eb1,
$f00f9344, $8708a3d2, $1e01f268, $6906c2fe, $f762575d, $806567cb,
$196c3671, $6e6b06e7, $fed41b76, $89d32be0, $10da7a5a, $67dd4acc,
$f9b9df6f, $8ebeeff9, $17b7be43, $60b08ed5, $d6d6a3e8, $a1d1937e,
$38d8c2c4, $4fdff252, $d1bb67f1, $a6bc5767, $3fb506dd, $48b2364b,
$d80d2bda, $af0a1b4c, $36034af6, $41047a60, $df60efc3, $a867df55,
$316e8eef, $4669be79, $cb61b38c, $bc66831a, $256fd2a0, $5268e236,
$cc0c7795, $bb0b4703, $220216b9, $5505262f, $c5ba3bbe, $b2bd0b28,
$2bb45a92, $5cb36a04, $c2d7ffa7, $b5d0cf31, $2cd99e8b, $5bdeae1d,
$9b64c2b0, $ec63f226, $756aa39c, $026d930a, $9c0906a9, $eb0e363f,
$72076785, $05005713, $95bf4a82, $e2b87a14, $7bb12bae, $0cb61b38,
$92d28e9b, $e5d5be0d, $7cdcefb7, $0bdbdf21, $86d3d2d4, $f1d4e242,
$68ddb3f8, $1fda836e, $81be16cd, $f6b9265b, $6fb077e1, $18b74777,
$88085ae6, $ff0f6a70, $66063bca, $11010b5c, $8f659eff, $f862ae69,
$616bffd3, $166ccf45, $a00ae278, $d70dd2ee, $4e048354, $3903b3c2,
$a7672661, $d06016f7, $4969474d, $3e6e77db, $aed16a4a, $d9d65adc,
$40df0b66, $37d83bf0, $a9bcae53, $debb9ec5, $47b2cf7f, $30b5ffe9,
$bdbdf21c, $cabac28a, $53b39330, $24b4a3a6, $bad03605, $cdd70693,
$54de5729, $23d967bf, $b3667a2e, $c4614ab8, $5d681b02, $2a6f2b94,
$b40bbe37, $c30c8ea1, $5a05df1b, $2d02ef8d )
Fonction de CRC32(valeur: Octet crc: LongInt) : LongInt
Fonction de CRCend( crc : LongInt ) : LongInt
la mise en Œuvre
la Fonction CRC32(valeur: Octet crc: LongInt) : LongInt
begin
CRC32 := CRC32tab[Byte(crc xor LongInt(valeur))] xor
((crc shr 8) et $00ffffff)
fin
la Fonction CRCend( crc : LongInt ): LongInt
begin
CRCend := (crc xor CRCSeed)
fin
a la fin.
{
Maintenant a l'utiliser...
Avec un LongInt Variable, par exemple vCRC32, premier de la graine, il
vCRC32 := CRCSeed
Puis aller de l'Octet-par-Octet thorugh pour calculer:
P := 1 a Taille FAIRE
vCRC32 := CRC32(Octets[P], vCRC32)
Puis il finir Avec CRCend
vCRC32 := CRCend(vCRC32)
Vous devriez etre capable d'Ecrire votre propre Dec2Hex Fonction =)
}
32 bits crc
By commentfaire
32 bits crc : Plusieurs milliers de conseils pour vous faciliter la vie.