432 Stimmen

Wie kann ich in Java einen long in int umwandeln?

Wie kann ich in Java einen long in int umwandeln?

3voto

Emdadul Sawon Punkte 5122

Unter Java 8 Ich tue dies auf folgende Weise

long l = 100L;
int i = Math.toIntExact(l);

Diese Methode wirft ArithmaticException wenn long Wert übersteigt Bereich von int . So bin ich vor Datenverlust sicher.

1voto

YrvCodes Punkte 21

Hier kann ein manueller Typisierungsvorgang durchgeführt werden:

long x1 = 1234567891;
int y1 = (int) x1;
System.out.println("in value is " + y1);

0voto

user13651274 Punkte 1

Wenn Sie eine sichere Konvertierung vornehmen und die Verwendung von Java8 mit Lambda-Ausdruck genießen möchten Sie können es wie folgt verwenden:

val -> Optional.ofNullable(val).map(Long::intValue).orElse(null)

0voto

Daniel Tam Punkte 41
long x;
int y;
y = (int) x

Sie können einen long in int umwandeln, solange die Zahl kleiner als 2147483647 ist, ohne dass ein Fehler auftritt.

0voto

ryuik Punkte 49

Ich füge ein paar wichtige Details hinzu.

Im Grunde genommen schneidet Java folgende Dinge ab long nach 32 Bits, so dass ein einfaches Typecasting den Zweck erfüllt:

    long l=100000000000000000l;
    System.out.println(Long.toString(l,2));
    int t=(int)l;
    System.out.println(Integer.toString(t,2));

Welche Ausgaben:

101100011010001010111100001011101100010100000000000000000
                          1011101100010100000000000000000

für l=1000000043634760000l es ausgibt:

110111100000101101101011110111010000001110011001100101000000
                             -101111110001100110011011000000

Wenn wir dies umrechnen -101111110001100110011011000000 im echten Zweierkomplement erhalten wir den exakten 32-Bit-Wert mit Vorzeichen, der von der long .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X