Introduction
Ver. all 2013 2016 2019 2021 365
Excelで2進数から10進数、10進数から2進数へ変換する関数を紹介します。
仕事で使う機会はあまりないと思われる関数ですが、コンピュータ関連の業務や学習時に活躍しそうですね。
BIN2DEC関数・・・2進数を10進数へ変換する
=BIN2DEC(数値)
- 数値・・・変換したい2進数を指定。10桁(10ビット)まで。
※最大の10ビットを変換した際は、最上位のビットが符号として扱われて2の補数表現になる。
-1 ~ -512 (1111111111) ~ (1000000000) の範囲内が可能
DEC2BIN関数・・・10進数を2進数へ変換する
=DEC2BIN(数値 , 桁数)
- 数値・・・変換したい整数を指定(-511~511まで)
※負の数を指定したときは[桁数]は無視されて10ビット(10桁)の2の補数で表示される - 桁数・・・表示したい桁数を指定(10桁まで)[省略可]
※省略したときは必要最小限の桁数で表示される
※整数・・・少数と分数を含まない「0」とプラスとマイナスの数値
※2の補数・・・2進数の最上位ビットが符号となり残りが大きさをあらわす
変換できる桁数や値の大きさに限界があるので注意だにゃ
2進数を10進数へ変換する
では、左の2進数を10進数に変換してみます。
変換後を表示するセルを選択して[関数の挿入]ボタンをクリック。
[関数の種類]を[エンジニアリング]か[すべて表示]に切り替えて「BIN2DEC」を選択して[OK]をクリック。
BIN2DEC関数・・・2進数を10進数へ変換する
=BIN2DEC(数値)
- 数値・・・変換したい2進数を指定。10桁(10ビット)まで。
※最大の10ビットを変換した際は、最上位のビットが符号として扱われて2の補数表現になる。
-1 ~ -512 (1111111111) ~ (1000000000) の範囲内が可能
引数の指定は、変換したいセルを指定するだけです。
=BIN2DEC(A2)
オートフィル機能を使用して下にコピーします。
後半2つの結果に注目してください。
9桁の「100000000」は「256」と普通に変換されていますが、
10桁の「1000000000」は突然マイナスになっていますね。
10桁の2進数を変換した場合は、左端のビットを符号とした2の補数に変換します。
そのため、通常の変換は9桁までと考えた方がよいですね。
10進数を2進数へ変換する
10進数を2進数へ変換するにはDEC2BIN関数を使用します。
左の10進数を2進数へ変換してみます。
変換後を表示するセルを選択して[関数の挿入]ボタンをクリック。
[関数の種類]を[エンジニアリング]か[すべて表示]に切り替えて「DEC2BIN」を選択して[OK]をクリック。
DEC2BIN関数・・・10進数を2進数へ変換する
=DEC2BIN(数値 , 桁数)
- 数値・・・変換したい整数を指定(-511~511まで)
※負の数を指定したときは[桁数]は無視されて10ビット(10桁)の2の補数で表示される - 桁数・・・表示したい桁数を指定(10桁まで)[省略可]
※省略したときは必要最小限の桁数で表示される
[数値]の場所には変換したいセルを指定します。
[桁数]は今回は省略します。
[OK]を押して結果が表示されたら、オートフィル機能を使用して下にコピーします。
変換できました。
後半2つがマイナスの数値を変換しています。
負の数を変換した際は最上位ビットが符号となり「2の補数」として変換されます。
また、変換できる数値は「-512~511」までになっています。
それ以外の数値を変換しようとした場合は「#NUM!」エラーが表示されます。
さらに、[桁数]の場所ですが、例えば「10」と指定すると、
下のように、その桁数に合うように左側を「0」で埋めてくれます。
※負の数は省略しても常に10桁で表示されます。
まとめ
英語で言うと
- 2進数・・・binary
- 10進数・・・decimal
それぞれ、
- 2進数→10進数・・・binary-to-decimal・・・BIN2DEC
- 10進数→2進数・・・decimal-to-binary・・・DEC2BIN
と考えると覚えやすいですね。
また、BIN2DEC関数を使用して10進数にする際は最大の10桁を使用すると2の補数表現になってしまうので、9桁までと考えておいた方が良いでしょう。
「2の補数」とか情報処理系の言葉が出てきたにゃ