HEX2DEC関数 16進数を10進数に変換する
関数名 | HEX2DEC |
分類 | エンジニアリング |
説明 | 16進数を10進数に変換する |
バージョン | - |
カテゴリ | Excel関数一覧 |
ここでの解説は、特に説明がない限り、Excelをインストールし、初期設定のまま使用した場合の動作を基に解説しています。
書式
HEX2DEC(数値1)
1 - 数値 ----- 変換する16進数を指定します。数値に指定できる文字数は10文字(40ビット)までです。
解説
セルA1に「=HEX2DEC("A5")」を入力します。
16進数の「A5」が10進数に変換されます。
セルA2に「=HEX2DEC("FFFFFFFF5B")」を入力します。
16進数の「FFFFFFFF5B」が10進数に変換されます。
ここで、なぜ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