Cambiar símbolos hexadecimales en un byte

Quiero cambiar los dos símbolos hexadecimales en un byte, por ejemplo si

input  = 0xEA 

luego

output = 0xAE

Tiene que estar en Java.

Ya tengo este método que hice, pero solo funciona en algunos casos:

public static final byte convert(byte in){

    byte hex1 = (byte) (in <<  4);
    byte hex2 = (byte) (in >>> 4);

    return (byte) (hex1 | hex2);
}

Un ejemplo de trabajo es:

input:  0x3A 
hex1:   0xA0
hex2:   0x03
output: 0xA3

Un ejemplo que no funciona es:

input:  0xEA
hex1:   0xA0
hex2:   0xFE
output: 0xFE

¿Alguien puede arrojar algunas luces sobre por qué esto no funciona?

Respuesta 1

Sospecho que el problema es la extensión del signo. Específicamente, probablemente necesites hacer

byte hex2 = (byte) ((in >>> 4) & 0xF);
Respuesta: 2

Intenté hacer un proyecto simple para mi skype-bot, y se ve así: import com.skype.Skype; import com.skype.SkypeException; public class SkypeDemo {public static void main (String [] args) ...

Quiero incrustar google maps en un JPanel. Como quiero características como acercar / alejar, no es factible usar imágenes estáticas. Para lograr esto, probablemente necesite insertar una página web (que muestra los mapas de Google) ...

La cuestión es que estoy tratando de imprimir la matriz creada previamente en el constructor, pero parece que está vacía. Aquí está el código del constructor: public Matrix (int row_col) {int [] [] ...

Quiero analizar un LocalDateTime a partir del siguiente patrón: aaaaMMddHHmmss000000 Eso significa el habitual "aaaa ... ss" y luego seis ceros al final. Entonces, el formateo funciona bien: String p = "aaaaMMddHHmmss '...