Why does subtracting '0' in C result in the number that the char is representing?

Silviu. picture Silviu. · Mar 24, 2013 · Viewed 26.5k times · Source

Can someone explain why this works?

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

Why does subtracting '0' from an ascii code of a char result the number that that char is representing?

Answer

Jean picture Jean · Mar 24, 2013

Because the char are all represented by a number and '0' is the first of them all.

On the table below you see that:

'0' => 48
'1' => 49


'9' => 57.

As a result: ('9' - '0') = (57 − 48) = 9

enter image description here Source: http://www.asciitable.com