题目描述
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
示例1
输入
0xA
输出
10
本题考查的知识点:字符串、进制转换
本题需要注意以下几个点:
1.因为A是10,不是0,所以要用"strInValue[i]-55";
2.因为char strInput[ ] = "0XA";数组中存的是字符,所以要比较字符'0'、'9'
3.得到十进制数后,还需要将十进制数转换为字符,本题通过sprintf()函数转换。
int GetValue( char* strInValue,char* strOutValue )
{
double count;
count = strlen(strInValue);
int sum = 0;
for(int i=count-1;i>=0;i--)
{
if(strInValue[i]>='0'&&strInValue[i]<='9')//对0~9数字的处理,0x不处理
{
sum += (strInValue[i]-48) * pow(16,count-i-1);
}
else
{
if(strInValue[i]>='A'&&strInValue[i]<='F')//对字母A~F的处理
{
sum += (strInValue[i]-55)*pow(16,co