|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcz.cuni.jagrlib.Crc32
public class Crc32
32-bit checksum. Uses polynomial "x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1".
Copyright © 1995-1996 by Mark Adler, adopted 2001-2004 by J.Pelikan
Polynomials over GF(2) are represented in binary, one bit per coefficient, with the lowest powers in the most significant bit. Then adding polynomials is just exclusive-or, and multiplying a polynomial by x is a right shift by one. If we call the above polynomial p, and represent a byte as the polynomial q, also with the lowest power in the most significant bit (so the byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, where a mod b means the remainder after dividing a by b.
| Constructor Summary | |
|---|---|
Crc32()
|
|
| Method Summary | |
|---|---|
static long |
compute(long crc,
byte[] data,
int from,
int len)
Crc32 checksum over part of the byte[] array. |
static long |
compute(long crc,
char[] data,
int from,
int len)
Crc32 checksum over part of the char[] array. |
static long |
compute(long crc,
java.lang.String str,
int from,
int len)
Crc32 checksum over part of the String. |
static long |
step(long crc,
int val)
One step of crc32 computation. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public Crc32()
| Method Detail |
|---|
public static final long step(long crc,
int val)
public static long compute(long crc,
byte[] data,
int from,
int len)
public static long compute(long crc,
char[] data,
int from,
int len)
public static long compute(long crc,
java.lang.String str,
int from,
int len)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||