Yueseryueser.com

← ガイド一覧

2進数デコードのガイド:区切りを誤れば結果も誤る

2進数のデコードは「半分だけ正しい」ことがほとんどありません。1ビット欠ける、別の文字が混ざる、それだけで以降の区切りがすべてずれます。

ツールを開く:2進数デコーダー

例を人の読める形に戻す

教材、プロトコル仕様、面接問題では 01001000 01101001 のような列がそのまま出てきます。手計算は遅く、間違えやすいものです。ビットフィールドの資料や古いシステムのダンプも同じ作業です。

自分で書いたビット演算の下書きを確認する用途もあります。中間結果を展開して文字に戻し、シフトの向きが逆でないかを確かめられます。デバッガの代わりにはなりませんが、仮説の検証には十分です。

結果を決める3つの条件

1つ目、必ず8ビット1組です。空白で分割して各組をバイトとして読むため、7ビットや9ビット、途中で切れた組は誤った値になります。2つ目、先頭ゼロを残すこと。01000001 と 1000001 は別の入力です。

3つ目、0と1以外を含めないこと。英字やカンマ、全角文字が混ざるとその組は不正になり、0バイトや文字化けとして現れます。結果が完全におかしいときは、元をコピーし直してください。不可視文字が混ざることがよくあります。

文字コード以外は何も知らない

デコードするのは UTF-8 だけです。元が GBK や UTF-16、圧縮データなら、置換文字や意味不明な文字になります。デコーダの不具合ではなく、そのバイト列が UTF-8 のテキストではないだけです。

暗号でもありません。8ビットずつ読めば誰でも戻せるので、パスワードを隠す用途には使えません。さらに16進数の4倍の長さになります。バイトを記録したいときは16進数や Base64 を選んでください。

よくある質問

1ビット足りないとどうなりますか

足りない位置から後ろの区切りがすべてずれ、元と無関係なバイトになります。ツールは桁数の不足を警告しないため、貼る前に全体のビット数が8で割り切れるか確認してください。

なぜ文字化けするのですか

元データが UTF-8 のテキストでないか、0と1以外が混ざっているかのどちらかがほとんどです。使用文字と8ビット区切りを確認し、それでも駄目なら元の文字コードを調べてください。

バイナリファイルもデコードできますか

できません。ここはテキストのバイト展開を戻す道具です。画像や圧縮ファイル、実行ファイルは、形式を理解する専用のビューアやパーサが必要です。

関連ツール:2進数デコーダー