「2進数を10進数に変換したいけど、手計算だと桁が多くて面倒…」そんな経験はありませんか。ExcelのBIN2DEC関数を使えば、2進数をセルに入力するだけで10進数へ一発変換できます。この記事では、BIN2DEC関数の書式・使い方・エラー対処法まで、実務で迷わないレベルで解説します。
BIN2DEC関数とは
BIN2DEC関数は、2進数(バイナリ)を10進数(デシマル)に変換する関数です。IT・通信・制御系の業務でデータ形式を変換するときに役立ちます。たとえば、ネットワークのサブネットマスクやビットフラグの値を確認したいとき、手計算なしで結果を得られます。
=BIN2DEC("1010")
→ 結果: 10
上の例では、2進数の 1010 が10進数の 10 に変換されています。引数に2進数の文字列を渡すだけなので、操作は非常にシンプルです。
読み方と名前の由来
BIN2DECは「ビン・ツー・デック」と読みます。名前の由来は以下のとおりです。
- BIN … Binary(2進数)
- 2 … to(〜へ)
- DEC … Decimal(10進数)
つまり「2進数を10進数へ変換する」という意味がそのまま関数名になっています。Excelの進数変換関数はすべて同じ命名規則です。覚えておくと、他の変換関数もすぐに見つけられます。
対応バージョン
Excel 2007以降であれば標準搭載されており、アドインの追加は不要です。Excel 2003以前では「分析ツール」アドインの有効化が必要でした。現在使われている主要なバージョンでは、特に準備なしで使えます。
NOTE
Microsoft 365・Excel 2021・Excel 2019・Excel 2016・Excel 2013・Excel 2010・Excel 2007のすべてで利用可能です。Google スプレッドシートでも同じ書式で使えます。
BIN2DEC関数の書式と引数
BIN2DEC関数の書式は次のとおりです。
=BIN2DEC(数値)
引数は「数値」の1つだけです。省略はできません。
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 数値 | 必須 | 変換したい2進数。0と1のみで構成された最大10桁の文字列 |
引数「数値」の指定ルール
引数「数値」には、以下のルールがあります。
- 使える文字は0と1のみです。
2以上の数字やアルファベットを含めると#NUM!エラーになります。 - 最大10桁(10ビット)まで指定できます。11桁以上を指定すると
#NUM!エラーです。 - 数値はセル参照でも直接入力でも指定できます。直接入力する場合は、数値でも文字列でも動作します。
=BIN2DEC(A1)
=BIN2DEC("1100")
=BIN2DEC(1100)
TIP
セルに2進数を入力するとき、先頭の0が消えてしまう場合があります。その場合はセルの表示形式を「文字列」に変更してから入力してください。
変換できる範囲(-512〜511)
BIN2DEC関数が扱える範囲は -512〜511 です。この範囲は、10ビットの符号付き整数に対応しています。
具体的には以下のようになります。
| 2進数(入力) | 10進数(出力) | 説明 |
|---|---|---|
0000000000 | 0 | 最小の正の数 |
0111111111 | 511 | 正の最大値 |
1000000000 | -512 | 負の最小値 |
1111111111 | -1 | 負の最大値 |
10ビット目(最上位ビット)が符号ビットとして機能します。0なら正の数、1なら負の数です。この仕組みを「2の補数」と呼びます。
BIN2DEC関数の使い方(基本例)
正の2進数を変換する
まずは正の数の変換例です。最上位ビットが0、もしくは9桁以下の2進数は正の数として扱われます。
=BIN2DEC("101") → 5
=BIN2DEC("1100100") → 100
=BIN2DEC("11111111") → 255
手計算で確認してみましょう。101 の場合は次のとおりです。
- 1×2² + 0×2¹ + 1×2⁰ = 4 + 0 + 1 = 5
関数を使えば、この計算を自動で行えます。2進数が長くなるほど手計算はミスしやすいので、関数に任せるのが確実です。
負の数(2の補数)を変換する
10桁の2進数で最上位ビットが 1 の場合、BIN2DEC関数は負の数として変換します。これは「2の補数」という表現方法に基づいています。
=BIN2DEC("1111111111") → -1
=BIN2DEC("1111111110") → -2
=BIN2DEC("1000000000") → -512
NOTE
2の補数とは、コンピュータが負の整数を表現する標準的な方法です。10ビットの場合、
1000000000(-512)から1111111111(-1)が負の数を表します。
9桁以下で先頭が 1 の場合は、正の数として扱われます。たとえば 111111111(9桁)は511です。負の数として解釈させるには、10桁で入力してください。
=BIN2DEC("111111111") → 511(9桁 → 正の数)
=BIN2DEC("0111111111") → 511(10桁・先頭0 → 正の数)
=BIN2DEC("1111111111") → -1 (10桁・先頭1 → 負の数)
WARNING
桁数によって正負の解釈が変わる点に注意してください。意図しない結果を避けるため、負の数を扱う場合は必ず10桁で入力しましょう。
よくあるエラーと対処法
BIN2DEC関数で発生するエラーは、ほぼ #NUM! です。原因と対処法を整理します。
| エラー | 原因 | 対処法 |
|---|---|---|
#NUM! | 0と1以外の文字が含まれている | 入力値を確認し、0と1のみにする |
#NUM! | 11桁以上の2進数を指定した | 10桁以内に収める |
#VALUE! | 論理値(TRUE/FALSE)を指定した | 文字列または数値で指定する |
よくある失敗パターンと修正例を示します。
=BIN2DEC("102") → #NUM!(「2」が含まれている)
=BIN2DEC("10000000000") → #NUM!(11桁で上限超過)
=BIN2DEC("1010") → 10(正しい入力)
TIP
入力値が正しい2進数かどうかを事前にチェックしたい場合は、ISNUMBER関数とBIN2DEC関数を組み合わせる方法があります。
=ISNUMBER(BIN2DEC(A1))とすると、変換可能ならTRUE、エラーならFALSEを返します。
#NUM! エラーが出たら、まずセルの中身を確認してください。全角数字やスペースが紛れ込んでいるケースも多いです。CLEAN関数やTRIM関数で不要な文字を除去してから渡すと解決することがあります。
DEC2BIN関数との使い分け(逆変換)
BIN2DEC関数の逆方向の変換には、DEC2BIN関数を使います。10進数を2進数に変換する関数です。
=BIN2DEC("1010") → 10 (2進数 → 10進数)
=DEC2BIN(10) → 1010 (10進数 → 2進数)
この2つの関数はペアで覚えておくと便利です。使い分けの基準はシンプルで、変換の方向で決まります。
| やりたいこと | 使う関数 | 例 |
|---|---|---|
| 2進数 → 10進数 | BIN2DEC | =BIN2DEC("1010") → 10 |
| 10進数 → 2進数 | DEC2BIN | =DEC2BIN(10) → 1010 |
NOTE
DEC2BIN関数では、第2引数に桁数を指定できます。
=DEC2BIN(10, 8)とすると00001010のように先頭をゼロ埋めした結果が返ります。BIN2DEC関数には桁数指定の引数はありません。
相互変換の検算にも使えます。=BIN2DEC(DEC2BIN(A1)) で元の値に戻れば、変換が正しいことを確認できます。
他の進数変換関数との比較
Excelには進数変換関数が全12種類用意されています。BIN2DEC関数はそのうちの1つです。全体像を把握しておくと、必要な変換関数をすぐに選べます。
| 変換元\変換先 | 2進数(BIN) | 8進数(OCT) | 10進数(DEC) | 16進数(HEX) |
|---|---|---|---|---|
| 2進数(BIN) | — | BIN2OCT | BIN2DEC | BIN2HEX |
| 8進数(OCT) | OCT2BIN | — | OCT2DEC | OCT2HEX |
| 10進数(DEC) | DEC2BIN | DEC2OCT | — | DEC2HEX |
| 16進数(HEX) | HEX2BIN | HEX2OCT | HEX2DEC | — |
関数名はすべて「変換元2変換先」の命名規則です。BIN2DECと同様に、名前から機能を推測できます。
たとえば、2進数を直接16進数に変換したい場合は BIN2HEX関数 を使います。BIN2DECで10進数を経由する方法もありますが、直接変換のほうが数式がシンプルです。
まとめ
BIN2DEC関数のポイントを整理します。
- 書式:
=BIN2DEC(数値)で、引数は1つだけ - 入力ルール: 0と1のみ、最大10桁(10ビット)
- 変換範囲: -512〜511(10ビット符号付き整数)
- 負の数: 10桁で最上位ビットが1なら、2の補数として負の数に変換される
- エラー対策:
#NUM!が出たら、桁数と使用文字を確認する - 逆変換: DEC2BIN関数を使う
進数変換は手計算だとミスが起きやすい分野です。BIN2DEC関数を使って、正確かつ効率的に変換しましょう。他の進数変換が必要になったときは、上の対応表から該当する関数を選んでください。
