このサイト・インストラクターのネタ帳のアクセスログを眺めていて、
「エクセル 2進数 変換」
「excel 10進数を2進数」
「エクセル 10進数→2進数」
といった検索でのアクセスが、結構あることに気づきました。
10進数を2進数に変換する
DEC2BIN関数を使えば、10進数を2進数に変換できます。
※A1セルに入力された10進法の数値を2進数に変換する例
B1セルに
=DEC2BIN(A1)
という数式を入力する
A1セルに「1」が入力されていれば「1」
A1セルに「255」が入力されていれば「11111111」
A1セルに「256」が入力されていれば「100000000」
といった値がB1セルに表示されます。
DEC2BIN関数の第2引数には桁数(ビット数)を指定することができ、
=DEC2BIN(A1, 8)
という式になっているときに
A1セルに「1」が入力されていれば「00000001」
という値がB1セルに表示されます。
ちなみにこのタイプの関数は、2003以前のExcelでは[分析ツール]アドインの組み込みが必要でしたが、2007以降は標準で使えるようになっています。
512以上の数値を2進数に変換する
DEC2BIN関数で扱えるのは、511(9ビット)までですから、A1セルに512以上の数値を入力した場合には#NUM!エラーが発生します。
そのため、
「エクセル 10進数 2進数 変換 512以上」
という検索キーワードでのアクセスもあります。
その場合、以下のような数式です。
※A1セルに入力された10進法の数値を2進数に変換する例
B1セルに
=DEC2BIN(INT(A1/2^9), 9)
& DEC2BIN(MOD(A1, 2^9), 9)
という数値を入力する
512以上の部分(INT(A1/2^9))と、511以下の部分(MOD(A1, 2^9), 9)を、それぞれDEC2BIN関数で2進数にして、文字列連結演算子「&」で結合しています。
この式なら、262,143(18ビット)まで変換できます。
512以上の部分(DEC2BIN(INT(A1/2^9), 9))は、割り算の整数部分だけを返すQUOTIENT関数を使って、
& DEC2BIN(MOD(A1, 2^9), 9)
としても同じです。
私はQUOTIENT関数を見慣れていないこともあってでしょうか、演算子「/」とINT関数を組み合わせた、先の式のほうが理解しやすく感じます。
18ビットよりも、キリのいい桁数にしたいということであれば、
& DEC2BIN(MOD(A1, 2^8), 8)
という数式で、65,535(16ビット)までいけます。
もっと大きな数値も、ということであれば、
& DEC2BIN(INT(MOD(A1, 2^16)/2^8), 8)
& DEC2BIN(MOD(A1, 2^8), 8)
という数式にすれば、「16,777,215」(24ビット)までいけます。
- Newer:オブジェクト変数の型をイミディエイトウィンドウに
- Older:データの入力規則は英語で何という?
Home » Excel(エクセル)の関数・数式の使い方 » 数学 » Excelで10進数を2進数に-DEC2BIN関数