2017-03-21 1 views
0

Ich habe Zweifel an Typ Casting in Java. Beim Typ-Casting können wir Long-Type-Werte in Byte umwandeln. Was ist der Zweck der Umwandlung von Long in Byte in Java, wenn es ein Echtzeit-Beispiel dafür gibt. zB:Warum sollten wir ein Long in ein Byte konvertieren? Gibt es ein Beispiel für diesen Ansatz in der realen Welt?

long l=1000; 
byte b=(byte)l; 
System.out.println(b); 

Der Ausgang ist -24. Hier wird 1000 in -24 konvertiert, wo diese Umwandlung in realen Projekten verwendet wird.

+1

Sie könnten das Gleiche über die meisten engen Casts fragen, es gibt nichts besonderes an der langen/Byte-Kombination. Es kommt nur auf. – harold

Antwort

4

Nun stellen Sie sich vor, Sie haben ein Objekt, sagen wir eine Farbe, das ist eine ganze Zahl (32 Bits breit), dass Objekt hält eine RGBA-Informationen, jetzt müssen Sie nur das erste Byte erhalten, weil nur der Alphateil für Sie relevant ist ...

int myColor = 999; 
byte alpha = (byte)myColor; 

jetzt alpha ist -25, die Tatsache, dass 999 nun in -25 gedreht wird, überhaupt nicht relevant, der Punkt ist, dass das Guss tatsächlich masking ist und die nicht relevanten Informationen Verkürzen,

999 = 0000_0011_1110_0111

-25 = 1110_0111

3

Hier ist ein Beispiel aus der Praxis:

public byte[] longToBytes(long l) { 
    byte[] bytes = new byte[8]; 
    bytes[0] = (byte)(l >> 56); 
    bytes[1] = (byte)(l >> 48); 
    // ... 
    bytes[7] = (byte)(l); 
    return bytes; 
} 

Der Zweck dieses Codes ist selbstverständlich ... und es wird ohne die Typumwandlung nicht kompilieren.

Verwandte Themen