为什么java.util.zip.CRC32.getValue()返回long,而不是int?

时间:2013-06-12 22:30:26

标签: long-integer crc32

查看标题。返回值是32位,对吗?为什么不返回一个int?

2 个答案:

答案 0 :(得分:13)

因为如果它返回一个int,那么一半的CRC将是负数。期望32位CRC是无符号的,即0..4294967295,它不能用int表示。

答案 1 :(得分:6)

java.util.zip.CRC32实现Checksum接口,long需要getValue()返回类型,因此需要long进行32位校验和;输出的高32位几乎肯定是0。