16进制转10进制


给出一个16进制,转换成10进制数

如:“F4”  --> 244

16进制转换成10进制:A-F对应10-15

F4 = 15*16^1 + 4*16^0 = 244

主要是将字符转换成数字

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<math.h>

int hex_to_dec(char *a)
{
    int len = strlen(a);
    int sum = 0;
    for (int i = 0;i < len;i++)
    {
        if(a[i] >= 'A' && a[i] <= 'F')
        {
            a[i] = int(a[i] - 'A') + 10 + '0';
        }
        if(a[i] >= 'a' && a[i] <= 'f')
        {
            a[i] = int (a[i] - 'a') + 10 + '0';
        }
        //pow(16.0,2)16的2次方
        sum += (a[i] - '0') * (pow(16.0,len - 1 - i));
    }
    return sum;
}
int main()
{
    char a[10];
    scanf("%s",&a);
    printf("%d\n",hex_to_dec(a));
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM