2進数から8進数への変換
2進数の1010は8進数で12です。右から3ビットずつまとめ、各グループを0から7の数字に置き換え、ビット数も示します。宿題の答え合わせやUnixのファイル権限の確認に役立ち、ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 2進数
- 1010
- 8進数
- 12
- ビット
- 4
- 底
- 8
2進数から8進数へのコンバーターは、ゼロとイチの文字列を基数8の数字として書き直し、3ビットごとを0から7までのコンパクトな1桁にします。たとえば「いち・ぜろ・いち・ぜろ」と入力すると12が返されます。これは同じ整数を、2の累乗ではなく8の累乗の位取りで表したものです。学生の方は3つ組へのグループ化や位取り表の宿題確認に、開発者の方はUnix風のパーミッションビット、命令エンコード、レジスタダンプなど、0と1の長い並びより8進数のほうが見やすい情報の文書化にご利用いただけます。受け付けるのは0と1の数字のみです。文字、数値内の空白、句読点、0b接頭辞、その他の記号が含まれる場合は、誤った結果を黙って返すのではなく、明確な検証エラーで失敗します。先頭のゼロは正規化されるため、整形後の2進数とビット数は正確に保たれます。
2進数から8進数への変換の仕組み
まず、0と1の文字だけを使う有限の文字列から始めます。両端の空白は取り除かれるため、貼り付けた宿題の行が余計な改行だけで失敗することはありませんが、残る文字はすべて2進数字である必要があります。一部のプログラミング言語の構文解析とは異なり、このコンバーターは0b接頭辞を受け付けません。
値がゼロの場合、整形後の2進数と8進数の結果はどちらも1桁のゼロとなり、これで完了です。正のビットパターンの場合は、冗長な先頭のゼロを取り除いてビット数が有効なビットを正しく反映するようにし、長さが3の倍数になるまで必要な分だけ左側をゼロで埋めます。3ビットの各グループがトリプレットです。
2の3乗は8だからです。左から右へ読むと、この3つの位は4、2、1の重みを持ち、その合計は0から7までの整数になります。その整数を0から7の8進アルファベットに対応させ、数字を連結します。
結果には0o接頭辞も先頭ゼロも付きません。値がゼロそのものである場合だけ例外です。256ビットを超える文字列は拒否され、ブラウザとWorkerでの処理量が一定の範囲に保たれます。
トリム後に0と1以外の文字 — 2、8、英字、途中の空白、句読点 — はすべてエラーとなり、「2進数から8進数」という検索意図が宿題の答え合わせや本番用のテストデータにとって信頼できるものに保たれます。
実務でこのツールが登場する場面
中等教育やコンピュータサイエンス入門の授業では、2進数3桁が8進数1桁に対応すると教えられます。整形後のビット列と8進数の値の両方を返す信頼できるオラクルがあれば、表計算の数式なしで解答作成や授業デモを迅速に進められます。
UnixやPOSIXのメモでは、ファイルモードのビットが2進の展開と並べて8進で記載されることが多く、レビュアーは読み取り・書き込み・実行を一目で確認できます。7は1 1 1、6は1 1 0、5は1 0 1であり、このコンバーターが任意のビット列に適用するのと同じトリプレット対応です。9ビットのモードに限りません。
2進ダンプを8進に直すことは、リストがコメントと一致するかを確かめる作業です。コーディング面接の練習問題やオンラインジャッジでは2進数から8進数への変換の実装が求められ、講師は学生の出力を、ゼロ、2の累乗、7や511のようなトリプレット全体の境界ケースについて、正しいことが確認済みの文字列と比較します。
オフラインのワークシートとオンラインの自動採点を一致させるためです。2進から16進への変換、10進から8進への変換、テキストバイトの8進化、汎用の複数基数表は、それぞれ独立した検索意図として専用ページで扱い、このビット列コンバーターを本来の範囲を超えて拡張しないでください。
活用例
宿題とトリプレットの練習
ビットを3つずつにグループ化し、各トリプレットを0–7の8進数字に対応させる教科書の答え合わせに。ゼロや 11111111 → 377 のようなバイト全体のパターンにも対応しています。
パーミッションビットと命令ダンプ
Unixのファイルモードのメモ、アセンブラのコメント、今でも基数8で語るハードウェアのリファレンスページを書く際に、フラグやモードの2進文字列をコンパクトな8進数に変換します。
面接・単体テスト用のテストデータ
2の累乗、すべて1のトリプレット、はみ出した2を拒否すべき境界長さのビット列を網羅するコーディング練習や参照テストの期待値となる8進文字列を生成します。
よくある質問
2進数から8進数へのコンバーターはどのような入力を受け付けますか?
先頭・末尾の空白は取り除かれます。0b接頭辞、英字、句読点、ビット列内の空白など、それ以外の文字は拒否されます。
8進数の結果はどのような形式ですか?
0–7の数字で、0o接頭辞や先頭のゼロは付きません。ただし値がゼロ自体の場合は例外です(例: 1010 → 12、11111111 → 377)。変換は右から3ビットずつにまとめるためです。2³ = 8 だからです。
0と1以外の文字を入力するとどうなりますか?
数字 2–9、英字、句読点、0b接頭辞、ビット列内の空白は受け付けられないため、打ち間違えた宿題のサンプルが誤った8進値へ黙って変換されることはありません。
長さの制限はありますか?
はい。 トリム後の2進文字列は最大256ビットまでです。ブラウザとWorkerでの変換処理を一定の範囲内に保つためです。
料金はいくらですか?
ブラウザのツールは無料で、ローカルで動作します。無効な入力は課金されません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/conv/binary-to-octal \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"binary":"1010"}'const res = await fetch("https://api.kit.forhosting.com/conv/binary-to-octal", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"binary": "1010"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/binary-to-octal",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"binary": "1010"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/binary-to-octal", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"binary":"1010"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"binary":"1010"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/binary-to-octal", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"binary": "1010"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.binary_to_octal",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_bits | 256 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
API呼び出しが成功した場合の料金は、公開されている基本価格である1件あたり$0.002です。
2進数から8進数への変換の仕組み
文字bは0と1以外の文字なので、接頭辞付きの入力は黙って復号されず invalid_input で拒否されます。同じ整数は、2進数の位取りの和を評価して基数8に書き直す方法でも求められますが、3つ組へのグループ化は浮動小数点の丸め、乱数シード、時刻タイムスタンプ、ネットワーク呼び出しを一切伴わない正確な整数演算であるため、同じ入力からは常に同じJSONが生成されます。
送信する内容と返ってくる内容
例として、binary が「いち・ぜろ・いち・ぜろ」なら octal は12でビット数は4、「いち」が8つ並ぶ場合は octal が377でビット数は8、binary がゼロなら octal もゼロでビット数は1です。宿題の確認や面接のウォーミングアップには無料のブラウザフォームを使い、トリプレット表やパーミッションビットの文書用に参照用のテストデータが必要になったら、継続的インテグレーションのスクリプトから同一の契約を呼び出してください。検証失敗では前払い残高は消費されません。4ビットごとの16進へのグループ化、同じビットの10進への書き換え、2から36までの任意の変換元・変換先を1回の呼び出しで扱う必要がある場合は、この2進から8進専用ページに負荷をかけるのではなく、それらの専用ページをご利用ください。必須フィールド binary を1つだけ送信し、0と1の文字列を格納してください。別名として bits、value、n、input、text も受け付けるため、フォームやスクリプトはUIに合う名前を使えます。binary はJSON文字列であるべきです。十進の数字が偶然0と1だけである非負の整数は強制変換されますが、文書化された契約は数字の文字列であり、JSON層で先頭ゼロを失わないようにします。binary の欠落、トリム後の空文字列、0と1以外の文字、256ビットを超える文字列は invalid_input で失敗し、課金されません。成功時のレスポンスは、整形後の2進文字列を binary に、8進数字の文字列を octal に、有効ビット数を bits に、そして複数ツールのパイプラインで明示的になるよう基数8を意味する base を返します。API呼び出しが成功した場合の料金は、公開されている基本価格である1件あたり$0.002です。
実務でこのツールが登場する場面
組み込みやコンパイラのメモは、歴史的なアセンブラがビットを3つずつにまとめていたため、今でも命令フィールドやシフト回数を8進で記述します。この機能は純粋な parse エンジンであるため、APIの料金は公開されている基本価格である成功1件あたり$0.002で、検証に失敗しても残高は消費されません。