ch - '0'是什么意思?

C/C++ code

if(isdigit(ch))
   operandStack.push(ch - '0');



operandStack是一个int型的栈,上面的程序的意思是不是可以这么理解:判断一个字符是不是数字,如果是,转换成int,压入栈。如果是这个意思,那么“ch - '0'”就是把字符变成int类型,为什么会这样呢?谢谢!!

作者: Purplepower   发布时间: 2011-06-14

因为 数字的编码 0 1 2 3 4 。。 9 是按顺序的。

所以‘9’-‘0’ = 9

作者: wuyu637   发布时间: 2011-06-14

ch是 char类型,把ch - '0'把acs码转化成int。
'1' - '0' = 1;
'2' - '0' = 2;

作者: dizuo   发布时间: 2011-06-14

字符转换成整数,比如ch='9';那么ch-'0'=9

作者: maoxing63570   发布时间: 2011-06-14

从ascii码变为0~9

作者: xiaoguangzaia   发布时间: 2011-06-14

好比
ch等于‘0’
ch-'0'=0
ch等于‘1’
ch-'0'=1
...
ch等于‘9’
ch-'0'=9

作者: hedy007   发布时间: 2011-06-14

应该是判断是不是字符型的 '0' --- '9' 是的话就把ch转换成int型的 0-9

作者: googlekang   发布时间: 2011-06-14

引用 2 楼 dizuo 的回复:

ch是 char类型,把ch - '0'把acs码转化成int。
'1' - '0' = 1;
'2' - '0' = 2;


++
'1'的ascii码比'0'的ascii码大1,所以'1' - '0' = 1;
...

作者: pathuang68   发布时间: 2011-06-14

将字符型数字转换为int型数字

作者: hnuqinhuan   发布时间: 2011-06-14

就是利用ASCII来装换的啊 0是48的啊

作者: sanshao1314   发布时间: 2011-06-14

有大概明白什么意思了,ASCII相减结果是int。对吧,呵呵

作者: Purplepower   发布时间: 2011-06-14