HEX2DEC関数 16進数を10進数に変換する

関数名 HEX2DEC
分類 エンジニアリング
説明 16進数を10進数に変換する
バージョン -
カテゴリ Excel関数一覧

ここでの解説は、特に説明がない限り、Excelをインストールし、初期設定のまま使用した場合の動作を基に解説しています。

書式

HEX2DEC(数値1)

1 - 数値 ----- 変換する16進数を指定します。数値に指定できる文字数は10文字(40ビット)までです。


解説

セルA1に「=HEX2DEC("A5")」を入力します。
Excel関数
16進数の「A5」が10進数に変換されます。
Excel関数
セルA2に「=HEX2DEC("FFFFFFFF5B")」を入力します。
Excel関数
16進数の「FFFFFFFF5B」が10進数に変換されます。
Excel関数
ここで、なぜ16進数の「FFFFFFFF5B」が10進数の「-165」になるのか見ておきましょう。

計算方法は以下の通りです。

10桁の16進数「FFFFFFFF5B」は、2進数で40桁の「1111....01011011」です。
10進数では通常、数字の先頭に「-」を付けることで負の数を表現します。
2進数の場合、左から数えて1文字目を「1」にすることで負の数を表現します。(「0」の場合は正の数です。)
HEX2DEC関数に指定できる文字数は10文字です。
「FFFFFFFF5B」は10文字であり、2進数に変換した場合、左から数えて1文字目は「1」です。
つまり、この値は負の数であることが分かります。
2進数に変換した場合の、2文字目~40文字目は値の大きさです。
負の数の場合は、2の補数を使って値の大きさを表しています。

では、2の補数を使って表現された2進数「1111....01011011」を10進数に変換してみましょう。

1を減算します。(1の補数)

1111....01011011

1111....01011010

各ビットを反転させます。

1111....01011010

0000....10100101

2進数「10100101」を10進数に変換し、「165」となります。
「FFFFFFFF5B」は10文字であり、2進数に変換した場合、左から数えて1文字目は「1」でしたので、結果は負の数となり、「-165」となります。


注意事項

・数値に16進数以外の値を指定すると、エラー値 #NUM! が返されます。


メモ

HEX2DEC は HEXadecimal number to DECimal


関連する関数

HEX2BINHEX2OCT