Re:char para int(resolvido)

o seguinte tenho uma variavel CHAR = 0xFA, que em decimal é 250.
o problema é que quando converto para int é jogado no jtextfield o valor -6, quando deveria aparecer 250.

 int i;
 i =(int) varchar; = 0xfA
 jTextField1.setText(String.valueOf(i)); //aparece "-6"
jTextField2.setText(Integer.toString(i)); // aparece "-6"  eu quero o valor 250.

sds

j.silvestre

Se sua definição de byte é “inteiro sem sinal que vai de 0x00 a 0xFF”, em vez de usar um cast (não se esqueça - casts em Java não fazem o que você precisa), faça um AND com 0xFF. Exemplo:

byte b = (byte) 0xFA;
int i = b & 0xFF; // vai obter o valor desejado, que é 0xFA = 250. 

acabei de testar isso… e me retornou 250 certinho… vc ta fazendo algo errado

int var = 0xfA; System.out.println(var);

Cuidado que char != byte. Isso porque o char é equivalente a um “unsigned short” (2 bytes) do C/C++.
Mesmo assim, se você tem esse char 0xFA, você pode usar exatamente a mesma coisa que eu usei:

char c = '\u00FA';  
int i = b & 0xFF; // vai obter o valor desejado, que é 0xFA = 250.

entanglement

valeu pelas dicas…

sds

j.silvestre