2013-06-12 14 views

cevap

9

Çünkü bir int döndürdüğünde, CRC'lerin yarısı negatif olur. Beklenti, bir 32-bit CRC'nin imzasız, yani bir int içinde temsil edilemeyen 0..4294967295 işaretidir.

+0

Mark, cevap için teşekkürler. Bir takipim var: Son baytları önceki tüm baytların bir CRC'si olan dosyaları okuyorum ve yazarım. CRC 4 bayta sığmalıdır. Bu yüzden, uzun CRC'nin üst 4 baytını görmezden gelemem, olabilir mi? Uzun olanı "imzasız" bir temsile dönüştürmem gerekecek mi? – Steveo

+1

Tanım olarak, 32 bit CRC, uzunluğun düşük dört baytına sığar. Java'da imzalanmamış 32 bit tür yok. –

2

java.util.zip.CRC32 nedenle 32-bit sağlama için long gerektiren getValue() için long dönüş türü gerektiren Checksum arabirimini uygular; Çıkışın üst 32 biti neredeyse 0'dır.