Pretože char je interne reprezentovaný ako Int16 číslo, čiže pri konvertovaní sa tak nejak predpokladá, že chceš túto hodnotu. Ak by si chcel číselnú hodnotu znaku, bol by si obmedzený len na číslice 0-9 a ako si vieš isto domyslieť, to má len dosť obmedzené využitie. Takto vieš spraviť srandy ako napr
Kód:
char x = '9'; // '9' = ASCII 57
int b;
b = x - '0'; // '9' - '0' = 57 - 48 = 9
Keď konvertuješ ale string na int, tam je vcelku jasné, že asi nebudeš chcieť jednotlivé číselné reprezentácie znakov z tabuľky...