Ajuda para entender algoritmo HEX PARA STRING!

2 respostas
L

Olá, eu encontrei esse código na internet, ele decodifica Hexadecimal para String, eu gostaria de saber como a lógica disso funciona... detalhes teóricos, comentários... etc! se não for pedir de mais, claro :oops:

public class Decoder {

	public String decodeHEX(String argData) {

		int i, lenSource, nChar, idx;

		if (argData.length() == 0)

			return ("");

		lenSource = argData.length();

		nChar = lenSource / 2;

		byte[] arrChar = new byte[nChar];

		idx = 0;

		for (i = 0; i < lenSource; i += 2) {

			arrChar[idx] = (byte) (Integer.parseInt(
					argData.substring(i, i + 2), 16));

			idx++;

		}

		return (new String(arrChar));

	}
}

valeu pessoal!
muito obrigado desde já :)


Referência do código: http://www.thatsjava.com/java-programming/209229/ - acesso em 26/03/11

2 Respostas

ViniGodoy

Qual é a dúvida?

Ele pega uma String como:

A0102918

Percorre de 2 em 2 caracteres, convertendo o valor hexa para inteiro (note que a função parseInt está recebendo 16 de base).
O valor inteiro então é “casteado” numa variável byte, que dará uma representação ascii para o valor em questão.

Note que como esse método faz a conversão de 2 em 2 caracteres, e 2 dígitos hexa representam exatamente 1 byte, esse código não suporta caracteres Unicode.

L

Ah, agora eu entendi hehe vlw ViniGodoy

Criado 26 de março de 2011
Ultima resposta 27 de mar. de 2011
Respostas 2
Participantes 2