十六进制转换成十进制

来源:互联网 发布:4g逛淘宝费流量么 编辑:程序博客网 时间:2024/05/01 06:51
问题描述
  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535

/*十六进制转化成十进制*/

#include <stdio.h>

#include <string.h>

char _16_string[10];

int main(int argc,char ** argv){

    while (scanf("%s",_16_string) == 1) {

        longlong int len =strlen(_16_string);

        longlong int num =0;

        int i =0;

        for (; i < len; i++) {

            if (!isalpha(_16_string[i])) {

                num = num * 16 +_16_string[i] - '0';

            }else{

                num = num * 16 +_16_string[i] - 'A' +10;

            }

        }

        printf("%lld",num);

    }

    return 0;

}


0 0