猜句子组成一句话:16进制的数字如何转换成10进制

来源:百度文库 编辑:高考问答 时间:2024/04/30 03:06:05
怎么给他转换回来呀

1:返回字符串表示的数(-1为出错)
//pch:十六进制字符串
//at:计算的位置(从最后一个字符开始到第0的位置,开始时是strlen(pch))
int myto(char* pch , int at)
{
if( at <= 0 )
return 0;
char a = pch[--at];
if(a>='0'&&a<='9')
{
a-='0';
}
else if(a>='a'&&a<='f')
{
a-='a';
a+=0xa;
}
else if(a>='A'&&a<='F')
{
a-='A';
a+=0xa;
}
else
{
return -1;
}
int b = myto( pch , at );
return b==-1 ? -1 : (int(a) + 16 * b);
}
这是c语言的方法
要用自己手算也可以:
比如:十六制的(123)
转化过程为:1乘以16的2次方加上2乘以16的1次方加上3乘以16的0次方结果就是所转化的十进制数

比如说ABCD这个16进制的数

转换成10进制的 是用A*16的4减1次方+B*16的3减1次方+C*16的2减1次方+D*16的1减1次方