使用C语言将十六进制十进制转换为整数
问题
如何使用C编程语言将十六进制值转换为整数值?
解释概念。
解决方案
十六进制值以16个符号1到9和A到F表示。这里,A到F的十进制等效值为10到15。
示例
以下是使用函数将十六进制转换为整数的C程序-
#include输出结果#include #include 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是十六进制的长度。