c=c*10+*(ipinput++)-48; 您给我写的程序有一句看不懂
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:数学作业 时间:2024/07/09 03:44:21
c=c*10+*(ipinput++)-48; 您给我写的程序有一句看不懂
![c=c*10+*(ipinput++)-48; 您给我写的程序有一句看不懂](/uploads/image/z/15947222-14-2.jpg?t=c%3Dc%2A10%2B%2A%28ipinput%2B%2B%29-48%3B+%E6%82%A8%E7%BB%99%E6%88%91%E5%86%99%E7%9A%84%E7%A8%8B%E5%BA%8F%E6%9C%89%E4%B8%80%E5%8F%A5%E7%9C%8B%E4%B8%8D%E6%87%82)
这不就是一位一位的往上加么,当c为个位数的char类型时,c*10还是0,那么输入的第一个字母-48得到的就是第一个字母对应的数字,而当处理第二个字母时,原来的c*10,变成了10位数了,后面的*(ipinput++)就是个位数.-48懂的吧?48刚好时0的ascii码,所以差值是相对于0的偏移,不就刚好是对应的数字了么?
所以,这一段代码做了两件事,一件事是后面部分*(ipinput++)-48把字母转成数字,另一件事就是前面的进位
所以,这一段代码做了两件事,一件事是后面部分*(ipinput++)-48把字母转成数字,另一件事就是前面的进位