使用C语言将十六进制十进制转换为整数

问题

如何使用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是十六进制的长度。

以上是 使用C语言将十六进制十进制转换为整数 的全部内容, 来源链接: utcz.com/z/344788.html

回到顶部