我使用 java.util.zip.CRC32 ,我理解它实现了 CRC32 (而不是 CRC32b ),但似乎我需要使用 CRC32b 而不是 CRC32 。
有没有可以用来进行 CRC32b 计算的 Java 开源代码?
如果我没记错的话,CRC32b 是一个创造的术语,等于 CRC32 的 4 个字节反转。
int crc32b(int crc) {
ByteBuffer buf = ByteBuffer.allocate(4);
buf.putInt(crc); // BIG_ENDIAN by default.
buf.order(ByteOrder.LITTLE_ENDIAN);
return buf.getInt(0);
}
例如对于输入“1”:
byte b = (byte) '1';
CRC32 crc = new CRC32();
crc.update(b);
System.out.printf("%x%n", crc.getValue());
int finalCRC = crc32b((int)crc.getValue());
System.out.printf("%x%n", finalCRC);
Output:
83dcefb7
b7efdc83
鉴于您的示例结论:java CRC32 (without反转)就好了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)