使用 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 是十六進位制的長度。
廣告