Perché sottraendo 0 in C si ottiene il numero rappresentato dal carattere?

Perché sottraendo 0 in C si ottiene il numero rappresentato dal carattere?


Qualcuno può spiegare perché funziona?


char c = '9';
int x = (int)(c - '0');

Perché sottraendo '0' da un codice ascii di un char risulta il numero che quel char sta rappresentando?


Risposte:


Perché i caratteri sono tutti rappresentati da un numero e '0' è il primo di tutti.


Nella tabella qui sotto vedi che:


'0' => 48
'1' => 49
'9' => 57.

Di conseguenza: ('9' - '0' ) =(57 - 48) =9



Fonte:http://www.asciitable.com