Tengo una especificación que dice que los dos siguientes bytes están firmados int.cómo leer int firmado desde bytes en java?
leer que en Java Tengo el siguiente
Cuando leo un int firmado en Java usando el siguiente código me sale un valor de 65449
lógica para el cálculo de firmar
int a =(byte[1] & 0xff) <<8
int b =(byte[0] & 0xff) <<0
int c = a+b
Creo que esto es incorrecto porque si yo y con 0xff obtengo un equivalente sin signo
entonces quité el & 0xff y la lógica como se indica a continuación
int a = byte[1] <<8
int b = byte[0] << 0
int c = a+b
which gives me the value -343
byte[1] =-1
byte[0]=-87
Traté de compensar estos valores con la forma en la especificación lee, pero esto se ve wrong.Since el tamaño del montón doesnt se incluyen en esta.
¿Cuál es la forma correcta de hacer el cálculo int firmado en java?
Así es como la especificación va
somespec() { xtype 8 uint8 xStyle 16 int16 }
Xstyle: Un entero con signo que representa una estructura de compensación (en bytes) desde el inicio de este widget() para el inicio de una estructura Xstyle() que expresa heredado estilos para el widget definido por página, así como estilos que se aplican específicamente a este widget.
¿Puede mostrar un ejemplo de entrada y el resultado deseado? no está claro ... – MByD
leo esto de una secuencia usando una especificación. Leo los dos bytes según la especificación y los valores cuando leo en una matriz de bytes cuando se convierten a bytes individuales son byte [1] = - 1 y byte [0] = - 87 dicen en una matriz de bytes que contiene dos bytes. La especificación marca estos dos bytes como firmados int y no sé cuál es el resultado correcto. – Siva