Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語を使用した16進数から整数値への変換


問題

Cプログラミング言語を使用して16進値を整数値に変換するにはどうすればよいですか?

コンセプトを説明してください。

解決策

16進値は、16個の記号1から9およびAからFで表されます。ここで、AからFの10進数に相当する値は10から15です。

以下は、関数-

を使用して16進数を整数に変換するための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("\nDecimal: %d", hextodc(hex));
   return 0;
}

出力

上記のプログラムを実行すると、次の結果が得られます-

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

説明

16進数のすべての文字を右から左にスキャンします

スキャンした文字をAとします。

Aを適切な10進形式に変換し、xに格納します。

dec =dec + x * 16y

y =y+1。

小数を返します。

左から右に16進値をスキャンすることもできますが、yをy =N – 1として初期化し、反復ごとにyをデクリメントする必要があります。 Nは16進数の長さです。


  1. C++での10進数から16進数への変換プログラム

    10進数を入力として指定すると、タスクは指定された10進数を16進数に変換することです。 コンピューターの16進数は16を底とし、10進数は10を底とし、0〜9の値で表されますが、16進数は0〜15から始まる数字で、10はA、11はB、12はC、 Dとして13、Eとして14、Fとして15。 10進数を16進数に変換するには、指定された手順に従います- まず、指定された数値を変換数値の基本値で除算します。例: 6789を16を底とする16進数に変換し、商を取得して格納する必要があるため、6789を16で除算します。余りが0〜9の場合はそのまま保存し、余りが10〜15の場合は、文字形式でA-

  2. Pythonで整数を16進文字列に変換するにはどうすればよいですか?

    組み込みのhex()関数を使用して、任意の整数を16進表現に変換できます。 >>> hex(100) '0x64' >>> hex(4095) '0xfff' >>> hex(31) '0x1f'