Convertir Hexadecimal a Texto (ascii) en Java

Hola amigos/as programadores/as desde los rincones de G+ solicitan un algoritmo (no ha especificado el lenguaje) que convierta los números de Hexadecimal a su respectivo código ascii se que hay funciones en java que hacen directamente la conversión pero como el motivo es ayudar y que sea comprensible el código me di a la tarea de picar un poco de código (en lo que llegan las personas a quienes capacitare, quedamos 8:30 am y son más de las 9) espero sea útil este código programado en Java.

[java]
public class HextToDecToStr {

public static int pow(int i, int powerNum) {
return (int) Math. pow( 16, powerNum);
}

public static char hexToStr(String cad){
String hdN=cad;
long decNum=0;

for(int i=0;i<hdN.length();i++){
int powerNum=hdN.length()-i-1;
int de= hdN.charAt(i);
switch(de){
case ‘0’:decNum= 0*pow(16,powerNum)+decNum;break;
case ‘1’:decNum= 1*pow(16,powerNum)+decNum;break;
case ‘2’:decNum= 2*pow(16,powerNum)+decNum;break;
case ‘3’:decNum= 3*pow(16,powerNum)+decNum;break;
case ‘4’:decNum= 4*pow(16,powerNum)+decNum;break;
case ‘5’:decNum= 5*pow(16,powerNum)+decNum;break;
case ‘6’:decNum= 6*pow(16,powerNum)+decNum;break;
case ‘7’:decNum= 7*pow(16,powerNum)+decNum;break;
case ‘8’:decNum= 8*pow(16,powerNum)+decNum;break;
case ‘9’:decNum= 9*pow(16,powerNum)+decNum;break;
case’A’:decNum= 10*pow(16,powerNum)+decNum;break;
case’a’:decNum= 10*pow(16,powerNum)+decNum;break;
case’B’:decNum= 11*pow(16,powerNum)+decNum;break;
case’b’:decNum= 11*pow(16,powerNum)+decNum;break;
case’C’:decNum= 12*pow(16,powerNum)+decNum;break;
case’c’:decNum= 12*pow(16,powerNum)+decNum;break;
case’D’:decNum= 13*pow(16,powerNum)+decNum;break;
case’d’:decNum= 13*pow(16,powerNum)+decNum;break;
case’E’:decNum= 14*pow(16,powerNum)+decNum;break;
case’e’:decNum= 14*pow(16,powerNum)+decNum;break;
case’F’:decNum= 15*pow(16,powerNum)+decNum;break;
case’f’:decNum= 15*pow(16,powerNum)+decNum;break;
}
}//System.out.println("Decimal number is: "+decNum);
char c=(char)decNum;
//System.out.println("Char is: "+c);
return c;
}

public static void main(String[] args) {
String txt="";
String cadena="45 73 74 6f 20 65 73 20 75 6e 20 45 6a 65 6d 70 6c 6f";
String car[]=cadena.split(" ");
for(int i=0;i<car.length;i++){
txt+=hexToStr(car[i]);
}
System.out.println(txt);
}
}
[/java]

Viva el código libre!!!!