Başlığa bakın. Döndürülen değer 32 bit, değil mi? Neden bir int dönüş değil?Neden java.util.zip.CRC32.getValue() int uzun değil, int döndürüyor?
8
A
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.
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.
İlgili konular
- 1. Int * p uzun int * p olmalı?
- 2. C# string.GetHashCode() int int sonuç döndürüyor
- 3. getCheckedRadioButtonId() yararsız int döndürüyor?
- 4. Neden CountDownLatch.getCount() çok uzun bir int döndürür?
- 5. Uzun ile int dönüştürebilir miyim?
- 6. Uzun Int literal - Geçersiz Sözdizimi?
- 7. imzasız uzun uzun VS imzasız uzun uzun int
- 8. Int nasıl dönüştürülür? int
- 9. Neden int uint'ten çıkaramıyorum?
- 10. joda yeni DateTime (int, int, int, int, int, int) weblogic 11g ile
- 11. int ve imzasız int
- 12. Neden int ve int arasında belirsiz ondalıklı Linq.Sum()?
- 13. Rastgele "int abonelik değil" davranışı
- 14. int * const AND extern int *
- 15. Spark/Scala derleyicisi neden RDD'de DM'yi bulamıyor [Map [Int, Int]]?
- 16. gcc, farklı mimariler üzerinde uzun int genişliği
- 17. java'da int dönüşümü uzun süre çalışıyor
- 18. Nasıl Convert NSIndexPath Int Int?
- 19. javascript int dizgisi int dizilimi
- 20. Baytları indekslediğimde neden int alırım?
- 21. TypeError: "int 'nesnesi callable değil" python içinde
- 22. Neden int null olamaz? N # n nl ile int (int?) C# içinde nasıl çalışır?
- 23. Sql nvarchar int int dönüşümü dönüştürmek
- 24. int değişken?
- 25. Neden Java derleyicisi HashMap'teki değerler için ilkel int türünü değil?
- 26. Neden math.Ceiling (double a) doğrudan int dönüş değil?
- 27. Neden (int) (object) 10m throw "Belirtilen cast geçerli değil" istisnası?
- 28. Neden Array.newInstance (Sınıf <?>, int) jenerik değil mi?
- 29. SQL Server: convert ((int) yıl, (int) ay (int) gün) DateTime
- 30. int (?) In int * pi = new int (0); anlamı nedir?
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
Tanım olarak, 32 bit CRC, uzunluğun düşük dört baytına sığar. Java'da imzalanmamış 32 bit tür yok. –