|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Alex Naumoff 2:5025/17 09 Dec 2002 20:50:56 To : All Subject : Re: Adler-32 -------------------------------------------------------------------------------- > From: "Dmitriy Shestakov" <dmitriy@aamsystems.ru> > > Hi! > > с ЛФП ЪОБЕФ, Ч ЮЕН УХФШ БМЗПТЙФНБ РПДУЮЕФБ ЛПОФТПМШОПК УХННЩ Adler-32 ? щ Ч > ЮЕН ПФМЙЮЙЕ ПФ CRC32? > > > фЕОШ ДПВТЩК. RFC ОЕ РПНОА. CRC - ЬФП РПМЙОПНЙБМШОЩК БМЗПТЙФН. юФП УМЕДХЕФ ЙЪ РЕТЕЧПДБТБУЫЙЖТПЧЛЙ БОЗМЙКУЛПЗП БЛТПОЙНБ. Adler-32 СЧМСЕФУС БТЙЖНЕФЙЮЕУЛЙН. хУМЙ ОЕ ПЫЙВБАУШ, ЬФП НПДЙЖЙГЙТПЧБООЩК БМЗПТЙФН цМЕФЮЕТБ - ХЧЕМЙЮЕОБ ТБЪТСДОПУФШ. ыПД НПЦОП РПУНПФТЕФШ Ч zlib, ЖБКМ adler32.c: /* adler32.c -- compute the Adler-32 checksum of a data stream * Copyright (C) 1995-1998 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ /* @(#) $FreeBSD: src/lib/libz/adler32.c,v 1.5 1999/08/28 00:06:00 peter Exp $ */ #include "zlib.h" #define BASE 65521L /* largest prime smaller than 65536 */ #define NMAX 5552 /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */ #define DO1(buf,i) {s1 += buf[i]; s2 += s1;} #define DO2(buf,i) DO1(buf,i); DO1(buf,i+1); #define DO4(buf,i) DO2(buf,i); DO2(buf,i+2); #define DO8(buf,i) DO4(buf,i); DO4(buf,i+4); #define DO16(buf) DO8(buf,0); DO8(buf,8); /* ========================================================================= */ uLong ZEXPORT adler32(adler, buf, len) uLong adler; const Bytef *buf; uInt len; { unsigned long s1 = adler & 0xffff; unsigned long s2 = (adler >> 16) & 0xffff; int k; if (buf == Z_NULL) return 1L; while (len > 0) { k = len < NMAX ? len : NMAX; len -= k; while (k >= 16) { DO16(buf); buf += 16; k -= 16; } if (k != 0) do { s1 += *buf++; s2 += s1; } while (--k); s1 %= BASE; s2 %= BASE; } return (s2 << 16) | s1; } сМЕЛУБОДТ юБХНПЧ, alx@relex.ru --- Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.2) Gecko/20021126 * Origin: Relex, Inc. (2:5025/17@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/7753e52dd63b.html, оценка из 5, голосов 10
|