BASE 関数は、10 進数を 2 進数・16 進数など好きな進数(2〜36 進数)の文字に変換する関数です。=BASE(255,16) と書くと「FF」になります。DECIMAL 関数は、その逆に、ほかの進数の文字を 10 進数に戻します。
DEC2BIN・DEC2HEX のように進数ごとに関数を使い分けなくても、1 つの関数で変換できます。この記事では、2 つの関数の使い方を、実際の Excel で確かめた結果で説明します。
BASE・DECIMAL 関数の書き方
=BASE(10進数, 進数, [最小の桁数])
=DECIMAL(文字, 進数)
| 引数 | 意味 |
|---|---|
| 10進数 | 変換したい 0 以上の整数 |
| 進数 | 2〜36(2 進数なら 2、16 進数なら 16) |
| 最小の桁数(省略可) | 足りない桁を左に 0 で埋める |
| 文字 | DECIMAL で 10 進数に戻したい文字(”FF” など) |
10 より大きい桁は A〜Z で表します(16 進数の A=10、F=15)。
1. 2 進数に変換する
I2 に式を入れて、下へコピーします。
=BASE(A2,2)

5 は 101、255 は 11111111 でした。
2. 16 進数に変換する
進数を 16 にします。
=BASE(A2,16)

10 は A、255 は FF、1000 は 3E8 でした。
3. 0 で桁をそろえる
3 つ目の引数に 8 を入れると、8 桁にそろいます。
=BASE(A2,2,8)

5 は 00000101 になりました。1000 は 8 桁をこえるので 1111101000 のまま表示されます。
4. 10 進数に戻す(DECIMAL)
16 進数の「FF」を 10 進数にします。
=DECIMAL("FF",16)

結果は 255 でした。
【実機で検証】BASE でつまずくところ

| ためしたこと | 式 | 結果 |
|---|---|---|
| マイナス(-1) | =BASE(-1,2) | #NUM! |
| 小数(10.9) | =BASE(10.9,2) | 1010 |
| 37 進数 | =BASE(10,37) | #NUM! |
| 36 進数の 35 | =BASE(35,36) | Z |
| 小文字の “ff” | =DECIMAL("ff",16) | 255 |
| 2 進数にない数字(”12″) | =DECIMAL("12",2) | #NUM! |
マイナスを入れると #NUM! になりました。BASE は 0 以上の数だけ変換できます。小数の 10.9 は 1010 で、10 として変換されました。
37 進数を指定すると #NUM! です。36 進数までで、35 は Z になります。
DECIMAL に小文字の “ff” を入れても 255 で、大文字と同じでした。2 進数にない「2」をふくむ “12” は #NUM! です。
よくある質問
マイナスの数を 2 進数にしたいときは?
DEC2BIN 関数は、マイナスを 10 桁の 2 の補数で表せます(-512〜511)。
結果を数値として計算に使いたいときは?
BASE の結果は文字です。10 進数に戻すときは DECIMAL を使います。
ビットごとの計算をしたいときは?
BITAND・BITOR・BITXOR 関数で、2 進数の桁ごとの計算ができます。

コメント