Xem tiêu đề. Giá trị trả về là 32 bit, phải không? Tại sao không trả lại một int?Tại sao java.util.zip.CRC32.getValue() trả về một, không phải là int?
8
A
Trả lời
9
Bởi vì nếu nó trả về một int, một nửa số CRC sẽ là số âm. Kỳ vọng là CRC 32 bit không được ký, tức là 0..4294967295, không thể được biểu diễn trong một int.
2
java.util.zip.CRC32
cài đặt giao diện Checksum
, đòi hỏi một loại long
để đổi lấy getValue()
, do đó đòi hỏi một long
cho một checksum 32-bit; 32 bit trên của đầu ra gần như chắc chắn 0.
Các vấn đề liên quan
- 1. tại sao CountDownLatch.getCount() trả về một thời gian dài nhưng không phải là int?
- 2. Tại sao Math.Round không trả về một int?
- 3. Tại sao InputStream # read() trả về một int chứ không phải một byte?
- 4. Tại sao mã này KHÔNG trả về một NullPointerException?
- 5. Tại sao DateTime.Now.Year một int và không phải là một ushort
- 6. Rails, tại sao tham gia trả về mảng với các giá trị không phải là uniq?
- 7. Tại sao dict.keys của Python() trả về một danh sách chứ không phải một bộ?
- 8. javax.servlet.HttpServletRequest.getContentLength() trả về int chỉ
- 9. Tại sao sàn không trả về một số nguyên?
- 10. Environment.GetCommandLineArgs - tại sao nó là một phương pháp? Tại sao không phải là tài sản?
- 11. tại sao Object.prototype === không phải là myNewObj.prototype?
- 12. Tại sao scipy.io.wavfile.read không trả về một bộ tuple?
- 13. lý do tại sao math.Ceiling (double a) không trả về int trực tiếp?
- 14. Tại sao là Array.Length an int và không phải là uint
- 15. Tại sao cơ thể trả lời giá một mảng không phải là một chuỗi?
- 16. Tại sao toán tử gán phải trả về một tham chiếu đến đối tượng?
- 17. Tại sao C# xử lý 0 là int và không phải là ngắn/thập phân vv?
- 18. Tại sao 4 không phải là một ví dụ về Số?
- 19. Tại sao LsaAddAccountRights trả về STATUS_INVALID_PARAMETER?
- 20. Tại sao toán tử ++ trả về giá trị không const?
- 21. Tại sao hàm Scala của tôi trả về loại Đơn vị và không phải là dòng cuối cùng?
- 22. Tại sao chính không trả về 0 ở đây?
- 23. Tại sao không phải là Enumerations Iterable?
- 24. Tại sao PropertyInfo SetValue và GetValue quá chậm?
- 25. tại sao không phải là (123 == 0123) trong java?
- 26. Tại sao C# Math.floor() trả đúp thay vì Int
- 27. Tại sao Scalas không phải là một đơn nguyên?
- 28. tại sao không phải là đa dạng.
- 29. Tại sao truyền/chuyển đổi từ int trả về dấu hoa thị
- 30. Java Enum trả về Int
Đánh dấu, cảm ơn câu trả lời. Tôi có theo dõi: Tôi đang đọc và ghi các tệp có byte cuối cùng là CRC của tất cả các byte trước đó. CRC phải phù hợp với 4 byte. Vì vậy, tôi không thể bỏ qua 4 byte trên của CRC dài, phải không? Tôi sẽ cần phải chuyển đổi dài để một "unsigned" represention đầu tiên phải không? – Steveo
Theo định nghĩa, CRC 32 bit phù hợp với bốn byte dài của độ dài. Không có kiểu 32-bit chưa ký trong Java. –