2011-01-28 11 views

Respuesta

22

, usted puede obtener el byte más bajo desde el número entero por AND con 0xFF:

byte lowByte = (byte)(value & 0xFF); 

Esto funciona porque tiene 0xFF bits cero en todas partes por encima del primer byte.

Para obtener la segunda más baja bytes, puede repetir este truco después de desplazar hacia abajo todos los bits en el número 8 puntos:

byte penultimateByte = (byte)((value >> 8) & 0xFF); 
+2

1 aunque no es un truco, se llama "desplazamiento aritmético" ;-) –

3

Usted no tiene que hacer y operación para obtener el menor byte simplemente lo lanza al byte y obtiene el byte más bajo en la variable byte.

intente seguir tanto le dará mismo resultado

short value = 257; 
System.out.println(value); 
byte low = (byte) value; 
System.out.println("low: " + low); 
byte high = (byte)(value >> 8); 
System.out.println("high: " + high); 

value = 257; 
System.out.println(value); 
low = (byte) (value & 0xFF); 
System.out.println("low: " + low); 
high = (byte) ((value >> 8) & 0xFF); 
System.out.println("high: " + high); 

o probarlo en Ideone.com