広告

BIN2DEC関数の使い方|2進数を10進数表記へ変換する

2021年5月28日

=BIN2DEC(符号付き2進数)

bin2dec_sample

BIN2DEC(バイナリィ・トゥ・デシマル)関数は、符号付き2進数表記の[数値]を10進数表記の数値に変換する関数です

参考:BIN2DEC関数ドキュメントエディタヘルプ

BIN2DEC関数の使い方. 構文

BIN2DEC関数の構文は以下のとおりです。

=BIN2DEC(符号付き2進数)

BIN2DEC関数の構文内訳

引数 説明 注釈
数値 必ず指定-符号付き2進数を指定します。 符号付き2進数-10進数に変換する10ビットの符号付き2進数を文字列として指定します。
※符号ビットとは、コンピューターで負の数値を扱うために付加するビット(bit:1か0の2値を区別するために必要な情報量)のこと。0なら正数、1なら負数を表す。
符号付き2進数の最上位ビットは符号ビットです。
この関数では、入力値の正の最大値は 0111111111、負の最小値は 1000000000 です。
符号付き2進数に有効な2進数を指定すると、自動的に適切な文字列の入力値に変換されます。たとえば、BIN2DEC(100) と BIN2DEC("100") はどちらも同じ結果4を返します。

BIN2DEC関数の使い方・実行サンプル

BIN2DEC関数を実行するサンプル。

説明 数値 数式
2進数の110010を10進数に変換します。 110010 =BIN2DEC(B2)
2進数の111111111を10進数に変換します。 111111111 =BIN2DEC(B3)

各進数をBIN2DEC関数で算出した結果。

説明 数値 数式 結果
2進数の110010を10進数に変換します。 110010 =BIN2DEC(B2) 50
2進数の111111111を10進数に変換します。 111111111 =BIN2DEC(B3) 511

GIFで↓

bin2dec_sample

BIN2DEC関数の実行サンプル結果

画像でBIN2DEC実行サンプル結果を確認↓

bin2dec_kekka

BIN2DEC関数 × GASの使い方・サンプル

BIN2DEC関数をGASで利用する際の、かんたんなサンプルを作成してみました。

実装する表のサンプル。

置換対象の数値 置換後 結果
デフォは空白 デフォは空白 デフォは空白

実装するGAS


function BIN2DEC() {
var ss,sht,lastrw,val01,val02
ss = SpreadsheetApp.getActiveSpreadsheet();
sht = ss.getActiveSheet();
lastrw = sht.getLastRow();
Logger.log(lastrw);
val01 = Browser.inputBox('2進数に置換する数値0か1を入力して下さい(10ビットまで)',Browser.Buttons.OK_CANCEL);
if(val01 == "cancel"){
Browser.msgBox("処理を中止しました");
return;
} else {
sht.getRange("A2").setValue("2進数に置換する数値は"+val01+"です");
}
// BIN2DEC関数をB2セルにセット
val02 = sht.getRange("B2").setFormula('=BIN2DEC('+val01+')');
 val03 =val02.getValue();
sht.getRange("C2").setValue("10進数は「"+val03+"」です");
}

実行結果をGIFで

BIN2DEC_gif

OYAKUN
OYAKUN
inputBoxへ2進数の置換したい数値を入力することで、10進数へ置換することができます。(入力しなければキャンセルに)

BIN2DEC関数を使うときの注意点

注意. 0と1以外の値を指定すると#NUM!エラーを返す

BIN2DEC関数は、引数に数値以外の値を指定すると#NUM!エラーを返します。

以下にサンプルを記載します。

数値 数式 結果
1100a =BIN2DEC(A2) #NUM!

bin2dec_error1

OYAKUN
OYAKUN
BIN2DEC関数に設置するA2セルの値に半角英字aを入れた時、BIN2DEC関数の算出結果は#NUM!を返していることが分かります。

ちなみに1と0以外の数値、例えば2進数ではない「2」や「3」を数値に指定しても#NUM!が返されます。

注意2. 数値が10文字以上だとNUM!エラーを返す

BIN2DEC関数では、数値に10文字以上の数値を指定した場合、#NUM!エラーを返します

以下にサンプルを記載します。

数値 数式 結果
1111000000000 =BIN2DEC(A2) #NUM!

bin2dec_error2

OYAKUN
OYAKUN
A2セルの数値が10文字(10ビット)以上の13文字で指定されたため、BIN2DEC関数の結果は#NUM!を返していることが分かります。

BIN2DEC関数の使い方. Excelとスプシの違い

BIN2DEC関数は、ExcelとGoogleスプレッドシートで基本的な使い方に相違はありません。

強いて言えばGoogle側のBIN2DEC関数ドキュメントエディタヘルプでは、

この関数では、入力値の正の最大値は 0111111111、負の最小値は 1000000000 です。

と記載されていることでしょう。

  • 数値には2進数を指定する
  • 数値の最上位は符号ビット
  • 負の数は2の補数を使って表す
  • 10ビット以上は#NUM!を返す

といった書式は、どちらとも同じです。

OYAKUN
OYAKUN
BIN2DEC関数の使い方は、EXCEL・Googleスプレッドシートともに同じと考えて良さそうです。

BIN2DEC関数の使い方 まとめ

BIN2DEC関数の使い方でした。 有効に利用するには、

  • 数値には0または1を指定する
  • 数値は10文字(ビット)以上入れない
  • テキストを指定しない

といった感じですね。

BIN2DEC関数を使うことで、2進数から10進数へすぐに置換することができます。

OYAKUN
OYAKUN
10進数を求めるだけに使える関数ですが、ひねればもっと面白い使い方ができるかもしれない関数ですね。

関連記事: BETAINV関数の使い方|β分布区間に対しβ累積分布の逆関数の値を返す
関連記事: BETADIST関数の使い方|ベータ分布関数で定義された特定値の確率を返す
関連記事: BASE関数の使い方|10 進数を別の底のテキスト表現に変換する