Cannot convert int to Byte. Why? [RESOLVIDO]

5 respostas
wellington7

public static final Byte[] enviaHeader = new Byte[] { 0x63, 0x00, 0x01, 0xD8 }

This code give an error on 0xD8, saying that cannot convert int to Byte… How can i do this?

5 Respostas

thiago.correa

Claro que não, um int não cabe em um byte.
Se você executar o comando System.out.println(0xD8) verá que o valor é 216 e não cabe em um Byte o máximo é 127

T

Realmente o problema é de precisão, porém D8 caberia em um byte sem sinal. Se for o caso pode tentar algo assim:

byte b = (byte)0xD8;

wellington7

Tem casos que tenho que enviar “FF”, então não vou conseguir de jeito nenhum com Byte b = 0xFF?
Ou com casting funciona?
O problema é que a função que envia pra serial envia bytes, não tem como enviar int…

T

Qual seu problema com casting?

byte b = (byte) 0xFF;
wellington7

Problema nenhum… acabei usando casting mesmo e até tinha esquecido desse tópico…rs
Entendi que o problema é que byte não vai de 0 a 255, mas sim de -128 ate +128. Isso meu colega resolve convertendo na linguagem C depois do download dos dados…

Criado 9 de outubro de 2008
Ultima resposta 15 de out. de 2008
Respostas 5
Participantes 4