10*num+(ch-'0')的用意是把字符数字转换成百千十位样的多位数
比如输入字符串“12345” 这个是字符串不是数字,现在转换成数字如下:
首先 读取第一个字符ch=‘1’ 进行运算 num=10*num+(ch-'0')= 1 (num之前=0)(num此时=1)
下面的num,ch直接用数字代入
读取第二个字符ch='2' 进行运算num=10*1+(‘2’-‘0’)=10+2=12 (num之前=1)(num此时=12)
读取第三个字符ch='3' 进行运算num=10*12+(‘3’-‘0’)=120+3=123 (num之前=12)(num此时=123)
读取第三个字符ch='4' 进行运算num=10*123+(‘4’-‘0’)=1230+4=1234 (num之前=123)(num此时=1234)
最后一个5,不难算了。
num*10代表为了十进制左移一位用零来填补
ch-'0'代表把字符型数字转换成整形数字,‘0‘相当是一个基准点ch与之的相差值就是ch整形值(十进制)
因为这个是靠数手指般的方式得出的规律:因为‘0’的值是十进制是48,‘9’的十进制是57,57-48=9刚好得9
恰恰是‘9‘的整形数字,这个也可以那其他数字来验证,所以得出ch-'0'的公式。