使用 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);// converting hexadecimal to integer value ++y;
   }
   return dec;
}
int main(){
   char hex[100];
   printf("Enter Hexadecimal: ");
   scanf("%s", hex);
   printf("
Decimal: %d", hextodc(hex));    return 0; }

輸出

執行上述程式後,會產生以下結果 -

1. Enter Hexadecimal: A
   Decimal: 10
   2. Enter Hexadecimal: A12
      Decimal: 2578

解釋

從右到左掃描十六進位制的所有字元

讓掃描到的字元為 A。

將 A 轉換為適當的十進位制形式並將其儲存在 x 中。

dec = dec + x * 16y

y= y + 1。

返回十進位制數。

我們也可以從左到右掃描十六進位制值,但是,我們必須將 y 初始化為 y = N – 1,並在每次迭代時將 y 減 1。N 是十六進位制的長度。

更新於: 2021 年 3 月 8 日

7K+ 次瀏覽

開啟你的 職業生涯

透過完成該課程獲得認證

開始學習
廣告