From: Philipp Meier Date: 2002-08-31T00:37:25+09:00 Subject: Re: Pure Ruby implementation of CRC32? --MXxcbiX/Q4+iy5U7 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Aug 30, 2002 at 09:54:54PM +0900, Park Heesob wrote: > "Robert Feldt" wrote in message > news:Pine.GSO.4.44.0208301404310.28565-100000@duquesne.ce.chalmers.se... >=20 > Try this >=20 > def crc32(c) > n =3D c.length > r =3D 0xFFFFFFFF > n.times do |i| > r ^=3D c[i] > 8.times do > if (r & 1)!=3D0 > r =3D (r>>1) ^ 0xEDB88320 > else > r >>=3D 1 > end > end > end > r ^ 0xFFFFFFFF > end Or (more rubyish) def crc32(c) r =3D 0xFFFFFFFF c.each_byte do |b| r ^=3D b 8.times do r =3D (r>>1) ^ (0xEDB88320 * (r & 1)) end end r ^ 0xFFFFFFFF end -billy. --=20 Meisterbohne S=F6flinger Stra=DFe 100 Tel: +49-731-399 499-0 eL=F6sungen 89077 Ulm Fax: +49-731-399 499-9 --MXxcbiX/Q4+iy5U7 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQE9b5E8fBriNoqItSYRArr2AJ4pTrcwc0ZQ3Ph5hPdVO6102l4T+ACdElfG HKVzc6Vq6avTLsXqZ2KuygI= =jVKV -----END PGP SIGNATURE----- --MXxcbiX/Q4+iy5U7--