一道北京某公司的招聘测试题
做一个8进制到10进制的转换函数。 函数名 :int get10(int A8) 将A8进行处理,返回A8的10进制数。
例:
void main()
{
printf("%d",get10(22));
}
运行的结果应该为:
18
我觉得有点意思,所以试了一下代码如下:
int get10(int A8)
{int tempA8; /*A8的正值表示*/
int numup; /*两个用来表示不断增加的区间,实现取得8进制数的每一位数值*/
int numdown;
int jz; /*用于8进制的乘法*/
int m,n; /*临时变量*/
int result; /**返回结果/
numup=10;
mumdown=1;
jz=1;
rusult=0;
if (A8<0){tempA8=-A8}
if (A8>0){tempA8=A8}
if (A8=0){tempA8=0;}
while(tempA8>numup)
{
m=tempA8%numup; /*小弟一般用vb和delphi很少用到c,记得%号是求余运算*/
n=m/numdown; /*/号好象是处法运算*/
result=result+n*jz;
numup=numup*10;
numdown=numdown*10;
jz=jz*8
}
n=tempA8/numdown;
if (A8<0)return -(result+n*jz);
if (A8>0)return (result+n*jz);
if (A8=0)return 0;
}
代码应该是这些。
不知道为什么考官认为我的答案不对,现在也没搞清错在那里?!!!,各位高手帮帮忙!!!