zalozmy ze na wejsciu mamy zakodowany znak ASCII w HEX (czyli 2 znaki opisujace 1 litere).
Jak zrobimy scanf("%x", &a);
gdzie a jest unsigned int (int w praktyce tez moze byc).
to z 9B otrzymamy 155. Teraz jak odejmiemy od 255 (to jest 2^8 - 1, najwieksza wartosc bajtu) otrzymane 155 - bedzie 100. Robimy (char) (100) i mamy d.
To jest koncepcyjny zapis. Kuchni nie zrobie

(to dziala tylko dla znakow lacinskich, nie polskich).
Poza tym te dane sa bardzo ograniczone, wiec od bidy mozesz zrobic na chama alg, ze wczytujesz wszystko do tablicy i skaczesz wskaznikiem o 2 i za kazdym razem porownujesz za pomoca case/switch ze wszystkimi kodami i zapisujesz w tablicy wynikowej wlasciwy odkodowany znak.
To jest szybke, latwe, ale bardzo 'nieinformatyczne', choc zyciowe