Manejo de conversiones desde y hacia hexadecimal

Quiero construir una función para convertir fácilmente una cadena que contenga código hexadecimal (por ejemplo, "0ae34e") en una cadena que contenga los valores ascii equivalentes y viceversa. ¿Tengo que cortar la cadena hexadecimal en pares de 2 valores y volver a unirlos o hay una manera conveniente de hacerlo?

Gracia