Zeon. 发表于 2017-12-15 16:26:19

求帮助

num = 10 * num + (ch - '0');这一个算符我看不懂

BngThea 发表于 2017-12-15 16:41:49

因为你输入一个数字,是以字符形式ch存在的
将ch - '0' 就得到了实际的数,比如 '5' - '0' == 5

ba21 发表于 2017-12-15 16:57:28

用对应的10 或16 进制相减 得到的字符

风过无痕丶 发表于 2017-12-15 19:48:51

这是一个有趣的十进制算法
比如 你输入2345
getchar()逐个接收
先从第一个2开始num = 10 * 0 + (2 - 0)== 2
第二次循环num = 10 * 2 + (3 - 0) == 23
第三次循环 num = 10 * 23 +(4 - 0) == 234
第四次循环 num = 10 * 234 + (5 - 0) == 2345

清欢怅冷 发表于 2017-12-15 20:16:57

ch-'0'就是输入字符ch对应的实数值,比如‘0’对应ASCII是48,那么‘0’ - ‘0’=0。即字符转数值
页: [1]
查看完整版本: 求帮助