如何使用C编程语言将十六进制值转换为整数值?
解释概念。
十六进制值以16个符号1到9和A到F表示。这里,A到F的十进制等效值为10到15。
以下是使用函数将十六进制转换为整数的C程序-
#include<stdio.h> #include<string.h> #include<math.h> int hextodc(char *hex){ int y = 0; int dec = 0; int x, i; for(i = strlen(hex) - 1 ; i >= 0 ; --i)//{ if(hex[i]>='0'&&hex[i]<='9'){ x = hex[i] - '0'; } else{ x = hex[i] - 'A' + 10; } dec = dec + x * pow(16 , y);// 将十六进制转换为整数值++ y; } return dec; } int main(){ char hex[100]; printf("输入十六进制: "); scanf("%s", hex); printf("\nDecimal: %d", hextodc(hex)); return 0; }输出结果
执行以上程序后,将产生以下结果-
1. 输入十六进制: A Decimal: 10 2. 输入十六进制: A12 Decimal: 2578
从右到左扫描十六进制的所有字符
令扫描的字符为A。
将A转换为适当的十进制格式并将其存储在x中。
dec = dec + x * 16y
y = y + 1。
返回十进制。
我们也可以从左到右扫描十六进制值,但是,我们必须将y初始化为y = N – 1,并在每次迭代时递减y。N是十六进制的长度。