Digamos que você tenha a seguinte tabela de correspondência byte -> caracter:
byte|char
00 | a
01 | z
02 | q
03 | r
04 | x
...
ff | $
Pra começar, já ouviu falar de arrays? Digamos que você já tenha ouvido falar. Você define um array:
char[] tabela = new char [256];
Isso porque há 256 bytes possíveis.
A idéia é que a posição 00 da tabela corresponda ao byte 00 (que é o char ‘a’), a posição 01 seja o char ‘z’, e assim por diante.
Você deve fazer o seguinte, para preencher a tabela:
OK? Então, para saber qual é o caracter correspondente ao byte 0x35, por exemplo, basta você recuperar o char correspondente dessa tabela.
Por exemplo:
byte b = 0x35;
char ch = tabela [b & 0xFF]; // isto é feito para converter os bytes de (byte) 0x80 até (byte) 0xFF para os valores corretos que devem ser usados para indexar um array
[quote=entanglement]Vou dar um exemplo bem estúpido.
Digamos que você tenha a seguinte tabela de correspondência byte -> caracter:
byte|char
00 | a
01 | z
02 | q
03 | r
04 | x
...
ff | $
Pra começar, já ouviu falar de arrays? Digamos que você já tenha ouvido falar. Você define um array:
char[] tabela = new char [256];
Isso porque há 256 bytes possíveis.
A idéia é que a posição 00 da tabela corresponda ao byte 00 (que é o char ‘a’), a posição 01 seja o char ‘z’, e assim por diante.
Você deve fazer o seguinte, para preencher a tabela:
OK? Então, para saber qual é o caracter correspondente ao byte 0x35, por exemplo, basta você recuperar o char correspondente dessa tabela.
Por exemplo:
byte b = 0x35;
char ch = tabela [b & 0xFF]; // isto é feito para converter os bytes de (byte) 0x80 até (byte) 0xFF para os valores corretos que devem ser usados para indexar um array