初学者 4-10进制转换出问题了。。。求教
我写的一个4进制转为10进制的程序 运行后11=5 1001=65这都没问题 但是101=18 10001=258 100000001=65538 多了1 百思不得其解啊 我知道指针能简便点做这个问题 但是我更想知道这个程序哪里出错了 求大神。。。#include<stdio.h>
#include<math.h>
int main(void)
{
int A,x,n,ans,i=0,sum=0,dif=0;
scanf("%d",&A);
for(n=0;A/pow(10,n)!=0;n++){i=n;};//计算4进制数有几位
while(i>=0)
{x=pow(10,i);
ans=A/x*pow(4,i);//将每位转成10进制数
sum=sum+ans;
dif=A%x;
A=dif;
i--;
};
return(sum);
求大神 告诉我哪错了把 谢谢~~