Source code
Revision control
Copy as Markdown
Other Tools
// SevenZip/CRC.java↩
↩
package SevenZip;↩
↩
public class CRC↩
{↩
static public int[] Table = new int[256];↩
↩
static↩
{↩
for (int i = 0; i < 256; i++)↩
{↩
int r = i;↩
for (int j = 0; j < 8; j++)↩
if ((r & 1) != 0)↩
r = (r >>> 1) ^ 0xEDB88320;↩
else↩
r >>>= 1;↩
Table[i] = r;↩
}↩
}↩
↩
int _value = -1;↩
↩
public void Init()↩
{↩
_value = -1;↩
}↩
↩
public void Update(byte[] data, int offset, int size)↩
{↩
for (int i = 0; i < size; i++)↩
_value = Table[(_value ^ data[offset + i]) & 0xFF] ^ (_value >>> 8);↩
}↩
↩
public void Update(byte[] data)↩
{↩
int size = data.length;↩
for (int i = 0; i < size; i++)↩
_value = Table[(_value ^ data[i]) & 0xFF] ^ (_value >>> 8);↩
}↩
↩
public void UpdateByte(int b)↩
{↩
_value = Table[(_value ^ b) & 0xFF] ^ (_value >>> 8);↩
}↩
↩
public int GetDigest()↩
{↩
return _value ^ (-1);↩
}↩
}↩