标签: long-integer crc32
查看标题。返回值是32位,对吗?为什么不返回一个int?
答案 0 :(得分:13)
因为如果它返回一个int,那么一半的CRC将是负数。期望32位CRC是无符号的,即0..4294967295,它不能用int表示。
答案 1 :(得分:6)
java.util.zip.CRC32实现Checksum接口,long需要getValue()返回类型,因此需要long进行32位校验和;输出的高32位几乎肯定是0。
java.util.zip.CRC32
Checksum
long
getValue()