int in long-Zuordnung

Habe ich versucht, dieses int-und long-Konvertierung, wo ich versucht habe die Zuweisung einer int variable zu einem long variable. Der code ist wie folgt:

public static void main(String []args){
    int i = 1024;
    long j = i;
    long k = i*i*i*i;
    System.out.println("j= " +j+ ", k= " +k);
}

So, während der Druck j es gab einfach eine Ausgabe von 1024. Aber beim drucken k es zeigte sich ein überlauf (k=0). Ich habe aussortiert dieses problem durch die Verwendung dieser Technik, wo ich explizit gecastet jede i zu long. also

public static void main(String []args){
    int i = 1024;
    long j = i;
    long k = ((long)i)*((long)i)*((long)i)*((long)i);
    System.out.println("j= " +j+ ", k= " +k);
}

Nun, er zeigte die richtigen Werte der beiden j und k.
Also, ich wollte wissen, warum wird das benötigt, um Darsteller int im zweiten Falle aber nicht in die erste. k, ein long können, behalten Sie diesen Wert nach dieser schweren Auftrag. Aber, warum ist es nicht richtig zugewiesen wurde?

InformationsquelleAutor der Frage Shashish Chandra | 2014-07-15

Schreibe einen Kommentar