Se riesci ad ottenere il valore intero numerico corrispondente ad un carattere ASCII, hai un valore numerico, punto e basta: non esiste un valore numerico decimale oppure esadecimale, ma il valore stesso e un modo, decimale ed esadecimale, di rappresentarlo.

In sostanza, se hai una variabile Integer, hai un valore intero che non è in se esadecimale o decimale, è un valore e basta; avere 0A oppure avere 10 è la stessa identica cosa, e attribuendo entrambi i valori ad una stessa variabile, tale variabile assumerà un unico valore, che è 0A espresso in esadecimale, oppure 10 espresso in decimale.

Detto questo, forse ciò che probabilmente devi fare è rappresentare questi valori numerici sottoforma di numero esadecimale; cioè, se calcoli un checksum che vale 10, ciò che dovrai inviare in output, se è richiesto l'esadecimale, sarà il carattere "A", cioè il carattere che corrisponde alla rappresentazione esadecimale del valore 10.

Verifica attentamente cosa devi fare, in quanto ho paura che ci sia molta confusione in questo senso tra valori, loro rappresentazioni e così via.

Ciao!