
八进制转十进制算法,求解释~~为什么是这样~~~
intfun(char*p){intn;/*********found********/n=*p-'0';p++;while(*p!=0){/*********found...
int fun(char *p)
{
int n;
/*********found********/
n=*p-'0';
p++;
while(*p!=0)
{
/*********found********/
n=n*8+*p-'0';
p++;
}
return n;
} 展开
{
int n;
/*********found********/
n=*p-'0';
p++;
while(*p!=0)
{
/*********found********/
n=n*8+*p-'0';
p++;
}
return n;
} 展开
1个回答
展开全部
原始输入为形如"34567"这样的八进制字符串。
输出为转换后的整形十进制数。
计算方法就是从最高位(首字节)开始,先将ASCII字符转换为对应整数,而后逐位乘8并依次累加下来得到最终结果。
以上面的34567为例,执行本函数就相当于是在:
(((3*8+4)*8+5)*8+6)*8+7 = 14711
输出为转换后的整形十进制数。
计算方法就是从最高位(首字节)开始,先将ASCII字符转换为对应整数,而后逐位乘8并依次累加下来得到最终结果。
以上面的34567为例,执行本函数就相当于是在:
(((3*8+4)*8+5)*8+6)*8+7 = 14711
追问
表示非常感谢~~~我还想问下那个5,6行是什么意思~~
追答
n=*p-'0';
首先取出最高位。
p++;
指针移动指向字符串中的下一个字符。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |