Gente bom dia!!
Estou tentando converter uma string “A2” para hexadecimal.
eu sei que tem como fazer assim:
byte teste = Integer.parseInt("A2",16)
mas eu queria que o resultado fosse assim 0xA2 tem como?
Gente bom dia!!
Estou tentando converter uma string “A2” para hexadecimal.
eu sei que tem como fazer assim:
byte teste = Integer.parseInt("A2",16)
mas eu queria que o resultado fosse assim 0xA2 tem como?
byte teste = (byte) Integer.parseInt("A2",16); // até aqui você estava fazendo certo
// Se quiser imprimir o valor acima como "0xA2", você precisa fazer:
System.out.printf ("0x%02X ", teste & 0xFF);
bom acho q me expresei mal…
quando converto A2 para hexa usando parseInt ele me retorna um valor negativo…quero um valor unsigned
Um byte é um inteiro cujo valor, em Java, vai de -128 a +127.
Se quiser um valor positivo, você tem de converter o byte em um int com o truque que lhe passei (efetuar o “AND” com o valor 0xFF):
int b = teste & 0xFF;
Mas de modo geral, você pode trabalhar com byte mesmo, só lembrando que ele tem essa particularidade chata em Java. (Em C# isso não ocorre, provavelmente porque o Anders Hejlsberg deve ter visto que isso de o byte ter sinal é terrivelmente desajeitado.)
obrigado Thingol pelas respostas…eu acabei utilizando short…
dei uma lida nesse documento http://www.darksleep.com/player/JavaAndUnsignedTypes.html e acabei optando assim!!
Obrigado de qualquer maneira!!