Ich schreibe in ein Speicherformat, das Uint32 hat, mit einem maximal zulässigen Wert von "4294967295".Java Uint32 (so lange gespeichert) zu 4 Byte-Array
Integer in Java ist natürlich knapp unter der Hälfte bei "2147483647". Also muss ich entweder Long oder Guavas UnsignedInteger verwenden.
in dieses Format zu schreiben, muss die Byte-Array-Länge 4, um die Integer passt ganz gut, aber lange auf ein Byte-Array-Umwandlung erfordert eine Reihe von Länge 8.
Wie kann ich eine lange konvertieren oder UnsignedInteger, der einen Maximalwert von "4294967295" als 4-Byte-Array darstellt?
Das funktioniert nicht, weil int einen Maximalwert von 2147483647 hat, während unsigned ints einen maximalen Wert von mehr hat als das Doppelte. Wird die long-Taste bis int gedrückt, so wird alles über den maximalen Wert hinaus verloren. – user2887053
@ user2887053 nein, tut es nicht. Das "int" wird negativ sein, aber das hat keine Konsequenzen. – harold