MCPで接続 →

計算を入力してください

公式

広告

結果

8進数の値(基数8)
56
from binary 101110
2進数(基数2) 101110
8進数(基数8) 56
10進数(基数10) 46

2進数→8進数 変換ツールとは?

このツールは、2進数(基数2、0と1の数字だけを使う表記)で書かれた数値を、8進数(基数8、0〜7の数字を使う表記)へ変換します。8進数は2進数をコンパクトに表せる表記で、2進数3桁がちょうど8進数1桁に対応します。さらに変換結果は10進数(基数10)の値も同時に表示するので、計算が正しいかをすぐに確認できます。

使い方

入力欄に 101110 のような2進数を入力して実行してください。ツールはすべての文字が0または1であることをチェックしたうえで、8進数の値・元の2進数・10進数の値を返します。先頭のゼロも自動で処理されるので、気にする必要はありません。

計算の仕組み

\(2^3 = 8\) であるため、2進数3桁が8進数1桁にちょうど対応します。まず右端から2進数を3ビットずつのグループに区切り、左端のグループが足りない場合はゼロで埋めます。各グループは $$ d = 4 \cdot b_2 + 2 \cdot b_1 + b_0 $$ で変換し、0〜7の値が得られます。これらの数字をつなげれば、8進数の完成です。

一般的には次のように表せます。

$$ \text{Octal} = \left( \text{Binary}_2 \right)_{2 \to 8} $$ $$ \begin{gathered} \text{Octal}_8 = \sum_{i=0}^{k-1} g_i \cdot 8^{\,i} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} \text{Binary} &= b_{n-1}b_{n-2}\cdots b_1 b_0 \;(\text{base }2) \\ g_i &= 4b_{3i+2} + 2b_{3i+1} + b_{3i} \\ k &= \lceil n/3 \rceil \text{ groups of 3 bits} \end{aligned} \right. \end{gathered} $$
右から3桁ずつにまとめた2進数の桁、各グループが1つの8進数の桁に対応
2進数の桁を(右から)3桁ずつのグループに分け、各グループを1つの8進数の桁に変換します。

具体例

101110 を例にします。右端から3桁ずつに区切ると 101110 になります。最初のグループは \( 4 \cdot 1 + 2 \cdot 0 + 1 \cdot 0 = 5 \)、2番目は \( 4 \cdot 1 + 2 \cdot 1 + 1 \cdot 0 = 6 \)。したがって8進数の結果は 56 です。確認のため10進数で計算すると \( 32 + 8 + 4 + 2 = 46 \) となります。

2進数を8進数に変換する3ステップの例題
例題での手順別グループ化:0で補い、3桁ずつまとめ、各3桁を変換。

2進法から8進法への グループ変換表

2進法から8進法への変換が機能する理由は \(8 = 2^3\) だからです。各8進数字は正確に3つの2進数字(3つ組)に対応しています。変換するには、2進数を右から3ビットのグループに分割し、左端のグループに必要に応じて先頭ゼロを補充し、各3つ組を下の単一の8進数字に置き換えます。

3ビット2進法(3つ組) 8進数字 10進数値
000 0 0
001 1 1
010 2 2
011 3 3
100 4 4
101 5 5
110 6 6
111 7 7

各3つ組は位置値 \(4,\ 2,\ 1\)(すなわち \(2^2, 2^1, 2^0\))で読まれます。例えば、\(101_2 = 1\times4 + 0\times2 + 1\times1 = 5\) となり、8進数字 \(5\) が得られます。

その他の解説例

例1:\(11_2\) → 8進法

右から3ビットの3つ組にグループ分けし、左をゼロで補充します:\(11 \to 011\)。

$$011_2 = 0\times4 + 1\times2 + 1\times1 = 3$$

したがって \(11_2 = \)3\(_8\)。その10進数値も 3 です。

例2:\(11010110_2\) → 8進法

右から3つ組に分割します。左端のグループにはゼロを補充します:\(11\,010\,110 \to 011\,010\,110\)。

3つ組 011 010 110
8進数字 3 2 6

左から右に数字を読むと \(11010110_2 = \)326\(_8\)。10進数値ではこの2進数は 214 と等しいです。

例3:より長い文字列 \(101110011001_2\)

これは12ビットで、すでに3の倍数なので、補充は必要ありません。右からグループ分けします:

3つ組 101 110 011 001
8進数字 5 6 3 1

したがって \(101110011001_2 = \)5631\(_8\)。同じ値を10進法で確認すると 2969 です。

よくある質問

なぜ3桁ずつ区切るのですか? \(8 = 2^3\) なので、8進数の1桁はちょうど2進数3ビット分を表します。そのため、変換は情報を失わないきれいな区切り直しになります。

桁数が3の倍数でない場合は? 左側をゼロで埋めて調整します。これによって値が変わることはありません。

小数点は入力できますか? このツールは整数の2進数のみに対応しています。小数部分があれば、変換前に取り除いてください。

最終更新: