ExcelのBIN2DEC関数|2進数を10進数に変換する

スポンサーリンク

「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進数(出力)説明
00000000000最小の正の数
0111111111511正の最大値
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)BIN2OCTBIN2DECBIN2HEX
8進数(OCT)OCT2BINOCT2DECOCT2HEX
10進数(DEC)DEC2BINDEC2OCTDEC2HEX
16進数(HEX)HEX2BINHEX2OCTHEX2DEC

関数名はすべて「変換元2変換先」の命名規則です。BIN2DECと同様に、名前から機能を推測できます。

たとえば、2進数を直接16進数に変換したい場合は BIN2HEX関数 を使います。BIN2DECで10進数を経由する方法もありますが、直接変換のほうが数式がシンプルです。

まとめ

BIN2DEC関数のポイントを整理します。

  • 書式: =BIN2DEC(数値) で、引数は1つだけ
  • 入力ルール: 0と1のみ、最大10桁(10ビット)
  • 変換範囲: -512〜511(10ビット符号付き整数)
  • 負の数: 10桁で最上位ビットが1なら、2の補数として負の数に変換される
  • エラー対策: #NUM! が出たら、桁数と使用文字を確認する
  • 逆変換: DEC2BIN関数を使う

進数変換は手計算だとミスが起きやすい分野です。BIN2DEC関数を使って、正確かつ効率的に変換しましょう。他の進数変換が必要になったときは、上の対応表から該当する関数を選んでください。

タイトルとURLをコピーしました