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