Tenho um array de byte e gostaria de transforma-lo em int ou short. Alguem sabe como faço isso?
Ex. Na posição 0 do array tenho o valor 3 e na posição 1 o valor -23.
Em Binário
3 = 0000 0011
-23 = 1110 1000
Gostaria de soma-los
0000 0011 1110 1000 = 1000.
Somá-los ? Não seria concatená-los. Essa ultia unstrução ai não explica o que vc quer. Vc quer concatená-los e depois pegar o menor byte ? ( se for isso basta pegr o menor byte de -23)
paulo.ubuntu
Dá uma olhada em Boxing e UnBoxing…provavelmente te servirá nessa duvida
Li o tutorial mas não sei como ele pode me ajudar. Acho qeu sou burrão mesmo
B
Bruno_Laturner
Bem, um byte tem 8 bits, um int em Java tem 32 bits.
Portanto você precisa pelo menos de um array com 4 bytes para transformar p/ int, ou quando tiver menos que isso, definir que valor os bits de alta ordem assumirão.
Quanto à transformação para int:
byte[] entrada = new byte[4];
// preencha a entrada
// Aplicando o padding, assumindo os primeiros bytes como os de
// alta ordem.
int a1 = (int) entrada[3];
int a2 = ((int) entrada[2]) << 4;
int a3 = ((int) entrada[1]) << 8;
int a4 = ((int) entrada[0]) << 12;
int a = a1 + a2 + a4 + a4;
Alkamavo
esta parte do int em java ter 32 bits é ja me tinha eskecido…ja tinha andado em conversoes malukas… :twisted: :twisted: :twisted:
Este tutorial n tem nada a ver!!!
paulo.ubuntu
a proposta a principio não era converter array de byte pra int
então SIM, te a ver…
sergiotaborda
agcn84:
Isso gostaria de concatená-lo, mas como binários, como eu faço isso?
Pois se eu transforma-los em int o -23 é transformado em