タイトルを参照してください。返される値は32ビットです。なぜintを返さないのですか?java.util.zip.CRC32.getValue()はintではなくlongを返すのはなぜですか?
8
A
答えて
9
intを返した場合、CRCの半分が負の値になるためです。期待されるのは、32ビットCRCが符号なしである、すなわち、0..4294967295であり、これはintで表現できないことである。
2
java.util.zip.CRC32
したがって、32ビットのチェックサム用long
を要する、getValue()
用long
戻り型が必要Checksum
インタフェースを実装します。出力の上位32ビットはほぼ確実に0になります。
関連する問題
- 1. "long"と "long int"と "long long"と "long long int"の違いは何ですか?
- 2. java stream.count()がlongを返すのはなぜですか?
- 3. なぜgetTimerは、uintではなくintであるintを返すのですか?
- 4. なぜCountDownLatch.getCount()はint型ではなく長い型を返しますか?
- 5. なぜmath.Pow10(e int)はint64ではなくfloat64を返しますか?
- 6. Dapperの.Execute(...)がintを返すのはなぜですか?
- 7. getpagesize()がintを返すのはなぜですか?
- 8. なぜ0XAAは符号なしのintで、intではないのですか?
- 9. long longをintに置き換えるとパフォーマンスが向上するのはなぜですか?
- 10. WCFがlongまたはintをシリアル化できないのはなぜですか?
- 11. なぜintポインタ '++'は1ではなく4だけインクリメントするのですか?
- 12. なぜint * []はint **に崩壊しますが、int [] []ではなくなりますか?
- 13. データ型がlong longに等しい最大数をlong longでサポートするのはなぜですか?
- 14. sizeof(int)がsizeof(int *)と異なるのはなぜですか?
- 15. なぜInt64.MaxValueがLongを返すのですか?
- 16. なぜcommon_type <long、unsigned long> :: type = long longですか?
- 17. getValue()関数がHashMapで機能しないのはなぜですか?
- 18. なぜ比較はintを返さなかったのですか
- 19. 関数は整数を返すのではなく、intのセットを返す。
- 20. なぜintは不変ですか?
- 21. 符号なしlong long int
- 22. pthread_cond_wait()は待機中ではなく、intを返します。6
- 23. なぜデータフレームまたは配列ではなくリストを返すのですか?
- 24. なぜjson_encodeはobjectではなくstringを返すのですか?
- 25. MS VC++ 6:trueではなくfalseを返すのはなぜですか?
- 26. 「long int a = 2」と「int a = 2L」の違いは何ですか?
- 27. List [Int、Int]が有効なScala型でないのはなぜですか?
- 28. DoubleをIntに変換するのがSwiftのIntを返さないのはなぜですか?
- 29. PHPでは、なぜ(int)でキャストするのではなく、inval()を使用するのですか?
- 30. はなぜintは
マーク、答えに感謝します。私はフォローアップを持っています:私は最後のバイトが前のすべてのバイトのCRCであるファイルを読み書きしています。 CRCは4バイトに収まる必要があります。だから私は長いCRCの上位4バイトを無視できないのですか?私はlongを "unsigned" represention firstに変換する必要がありますか? – Steveo
定義上、32ビットCRCはロングの4バイトに収まります。 Javaには符号なし32ビット型はありません。 –