ho provato in questo modo ma non so se sia corretto anche se il risultato finale è 0d49..

codice:
function convers($decim){
if ( !(strlen(dechex($decim)) % 2 == 0))    $decimp = "0".dechex($decim);
else 							      $decimp = dechex($decim);
return $decimp;
}

echo convers("3401");
risultato

04d9

che ne pensate?

Saluti