【longt】...{unsignedlongt=0;intk;inti=0;i=strlen(s);for(--i;i>=0;i--)...
网友回答
【答案】 首先,输入的是字符!也就是8位以内的数字是字符,后面的输出的是%lu(无符号长整型),类型不同,明显不能直接转换!
函数fun(str)的作用就是将字符串的8位数,转换成无符号的长整型!
转换的方式是把字符串中的每一位上的数字取出来,然后加起来(数字ab=十位数a*10+个位数b,如56=5*10+6),这个算法自己理解!
至于k=s[i]-'0'就是把对应的字符型数字s[i],转换成整形的s[i],字符型在强制转换成整形的时候,值等于字符型对应的ascii码值,同时,0-9的ascii码值是连续的,所以字符s[i]对应的数字值,等于字符s[i]对应的ascii码值减去0对应的ascii码值!