文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C程序习题-16进制换算为10进制[8.16]

C程序习题-16进制换算为10进制[8.16]

时间:2010-08-11  来源:chengxiaopeng

    写一函数,输入一个十六进制数,输出相应的十进制数。     由于十六进制中含有A,B,C,D,E,F字符,因此我们需要把这些字符变成我们需要的十进制数据,按照16进制换算为10进制的原则进行,由于进制的换算,一般从末尾开始,因此我们的程序也是从后面往前面进行运算最后算出结果。代码如下:  

#include <stdio.h>
#include <math.h>

int OX2Ten(char[]);
int Char2Int(char);
int main(int argc,char *argv[])
{
    char ch[10];
    int result;
    printf("please input a HEX number:");
    gets(ch);
    result = OX2Ten(ch);
    if (-1 != result)
    {
       printf("the result is : %d",result);
    }
    else
    {
        printf("error: you input HEX number is error.");
    }
    system("pause");
    return 0;
}

int OX2Ten(char ch[])
{
    int i,j = 0;
    int result = 0,int10value;
    for (i = strlen(ch) - 1; i >= 0 ;i--,j++)
    {
        int10value = Char2Int(ch[i]);
        if (-1 != int10value)
        {
           result += pow(16,j) * int10value;
        }
        else
        {
            result = -1;
            break;
        }
    }
    return result;
}

int Char2Int(char c)
{
    int result = -1;
    if ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'))
    {
       switch(c)
       {
                case 'a':
                case 'A':
                     result = 10;
                     break;
                case 'b':
                case 'B':
                     result = 11;
                     break;
                case 'c':
                case 'C':
                     result = 12;
                     break;
                case 'd':
                case 'D':
                     result = 13;
                     break;
                case 'e':
                case 'E':
                     result = 14;
                     break;
                case 'f':
                case 'F':
                     result = 15;
                     break;
       }
    }
    else if (c >= '0' && c <= '9')
    {
         result = c - 48 ;
    }
    else
    {
         ;
    }
    return result;
}


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载