n=n*8+*p-'0';这句是什么意思#includemain(){char *p,s[6];int n=0;p=s;gets(p);while(*p){n=n*8+*p-'0';p++;}printf("%d\n",n)}输入123结果83我没想明白n=n*8+*p-'0';这步怎么算的

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/20 19:55:01
n=n*8+*p-'0';这句是什么意思#includemain(){char *p,s[6];int n=0;p=s;gets(p);while(*p){n=n*8+*p-'0';p++;}printf(

n=n*8+*p-'0';这句是什么意思#includemain(){char *p,s[6];int n=0;p=s;gets(p);while(*p){n=n*8+*p-'0';p++;}printf("%d\n",n)}输入123结果83我没想明白n=n*8+*p-'0';这步怎么算的
n=n*8+*p-'0';这句是什么意思
#include
main()
{char *p,s[6];
int n=0;
p=s;
gets(p);
while(*p)
{n=n*8+*p-'0';
p++;}
printf("%d\n",n)
}
输入123
结果83
我没想明白n=n*8+*p-'0';这步怎么算的

n=n*8+*p-'0';这句是什么意思#includemain(){char *p,s[6];int n=0;p=s;gets(p);while(*p){n=n*8+*p-'0';p++;}printf("%d\n",n)}输入123结果83我没想明白n=n*8+*p-'0';这步怎么算的
*p-'0'就是将字符变成数字,例如123 当 p指向1的时候,*p = '1' ,而‘1’-‘0’就是两者之间的ASCII码进行相减,
结果就是1了.
所以n = 0*8+1=1
n=1*8+2=10
n=10*8+3=83