16進数→2進数変換ツール

16進数の各桁はちょうど4ビットに対応するため、16進数から2進数への変換はもっとも扱いやすい基数変換です。1つでも複数でも16進数値を貼り付けると、このツールは各桁をゼロ埋めされた4ビットのニブルに展開した2進数文字列を生成します。ビットフィールドの仕様書、ファームウェアのレジスタ、低レベルデバッグなどに便利です。

16進数を2進数に変換する手順

  1. 1

    16進数を貼り付ける

    0〜9とa〜fの任意の組み合わせを入力してください。`0x`などの接頭辞や区切り文字は自動的に取り除かれます。

  2. 2

    各桁が4ビットになる

    各16進数の桁が4ビットの2進数相当に展開されるため、出力は常に桁ごとに4ビットになります。

  3. 3

    先頭ゼロは常に保持される

    各ニブルは4ビットすべてを保持するため、バイト境界が常にそろいます。切り詰めのオプションはありません。

  4. 4

    2進数をコピーする

    出力は4ビットのニブル単位でグループ化された純粋な`0/1`の文字列で、仕様書、ファームウェアのコメント、電卓などにそのまま貼り付けられます。

16進数と2進数の対応

16進数は2進数をコンパクトに表したものです。16進数2桁で1バイト(8ビット)になります。各16進数の桁がちょうど4ビットを占めるため、頭の中での相互変換もすばやく行えます。

ニブル対応表

16進数 2進数 10進数
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
A 1010 10
B 1011 11
C 1100 12
D 1101 13
E 1110 14
F 1111 15

したがって、0x2F0010 1111になります。

4ビットのグループ化が重要な理由

STM32、AVR、RISC-Vのリファレンスマニュアルを読むエンジニアは、レジスタが4ビット単位で並んでいることを前提とします。グループ化することで、0x8001がMSBとLSBだけ立っていて、その間には何もないことが一目でわかります。

バイト順と接頭辞

  • 0xはC言語スタイルの16進数接頭辞、&Hは古いBASIC、$は6502アセンブリで使われます。変換ツールはこの3種類に加えて、スペース、ハイフン、コロンなど16進数以外の文字もすべて取り除きます。
  • 2進数の出力は常に最上位ビットが先頭(ネットワークバイトオーダー)です。対象がリトルエンディアンの場合は、並べる前にバイトを入れ替えてください。
  • 各16進数の桁は常に4ビットすべてを出力するため、32ビットのレジスタ値は必ず32ビットで出力されます。オン・オフできる先頭ゼロの切り詰めはありません。

よくある質問

いいえ。0xFF0xff0xFfはすべて同じ11111111に変換されます。変換ツールは大文字と小文字を同じように扱います。

この変換ツールは絶対値のみを扱います。先頭の-は16進数以外の文字のため取り除かれ、-0x010x01と同じく0000 0001になります。2の補数や符号付きの出力が必要な場合は、符号付き数値専用のツールを使ってください。

はい。スペースまたは改行で区切ると、変換ツールが区切り文字を取り除きます。2A 3B0010 1010 0011 1011になります。出力は1つの連続した流れになるため、入力値の境界は保持されない点に注意してください。

はい。各16進数の桁は先頭ゼロを保持した4ビットすべてを常に出力するため、0x80010000のような32ビットのレジスタ値は1000 0000 0000 0001 0000 0000 0000 0000と、バイト境界が常にそろった形で出力されます。

関連ツール

このツールは他の言語でも利用できます