Warum gibt java.util.zip.CRC32.getValue () einen langen, keinen int zurück?

8

Siehe den Titel. Der zurückgegebene Wert ist 32 Bit, oder? Warum nicht ein int zurückgeben?

    
Steveo 12.06.2013, 22:30
quelle

2 Antworten

9

Wenn es einen int zurückgibt, wäre die Hälfte der CRCs negativ. Die Erwartung ist, dass ein 32-Bit-CRC unsigniert ist, d. H. 0..4294967295, der nicht in einem int. Dargestellt werden kann.

    
Mark Adler 12.06.2013, 23:19
quelle
2

java.util.zip.CRC32 implementiert die Checksum Schnittstelle, die einen long Rückgabetyp für% co_de erfordert %, daher wird für eine 32-Bit-Prüfsumme ein getValue() benötigt; die oberen 32 Bits des Ausgangs sind fast definitiv 0.

    
David Futcher 12.06.2013 22:41
quelle

Tags und Links