Ahoj, chtěl bych pochopit kus kódu, tady je úryvek:
int c1, c2, i;
printf("Zadejte hexadecimalni cislo (00 az FF) : ");
c1 = getchar();
c2 = getchar();
if (c1 >= '0' && c1 <= '9')
i = 16 * (c1 - '0'); // Tuto část potřebuji pochopit
a) já tedy napíši znak, např číslo 4 jako znak '4'
b) tomuto znaku je přidělen ASCII kód 52 a znak '0' má kód 48
c) 52 - 48 = 4 což podle ASCII znamená že nyní je v proměnné c1 znak s ASCII kódem 4
d) když tuto proměnnou následovně násobím číslem 16, tak násobím proměnou typu int, protože 16* (ASCII 4) = 64 a to je znak '@'
Jak to, že se mi v průběhu výrazu změnil znak na dekadickou hodnotu typu int ?