zaqro toolszaqro tools

進数変換

2進数・8進数・10進数・16進数をリアルタイムで相互変換します。データは外部に送信されません。

値を入力すると変換結果がここに表示されます

進数(基数)とは

進数とは、数値を表現するための「基数」のことです。 日常生活では10進数(基数10)を使いますが、コンピュータの世界では2進数、8進数、16進数が広く使われています。 基数Nの場合、1桁で0からN-1までの数を表現でき、N個の値が揃うと次の桁に繰り上がります。

2進数と情報の基礎

コンピュータは電気的なON/OFF(1と0)の2状態で情報を表現します。 この最小単位を「ビット(bit)」と呼び、8ビットで1バイト(byte)となります。

  • 1ビット: 0 または 1(2通り)
  • 4ビット(ニブル): 0000〜1111(0〜15、16進数1桁に対応)
  • 8ビット(1バイト): 00000000〜11111111(0〜255)

2進数は人間にとって桁数が多く読みにくいため、プログラミングでは16進数や8進数で省略して表記することが一般的です。

16進数とプログラミング

16進数は0〜9に加えてA〜F(10〜15)を使い、1桁で4ビットを表現できます。 2進数の4桁をそのまま16進数の1桁に置き換えられるため、メモリアドレスやカラーコード、バイト列の表現に最適です。

カラーコードの例

#FF6600  → R: FF(255) G: 66(102) B: 00(0)
#1A2B3C  → R: 1A(26)  G: 2B(43)  B: 3C(60)

プレフィックスの意味

0b1010   → 2進数のリテラル(JavaScript, Python, Rust等)
0o17     → 8進数のリテラル(JavaScript, Python等)
0xFF     → 16進数のリテラル(C, JavaScript, Python等)

変換の仕組み

進数変換は、まず入力値を10進数に変換し、その10進数から目的の基数に変換するという2ステップで行います。

N進数 → 10進数

2進数 1010 → 1×2³ + 0×2² + 1×2¹ + 0×2⁰ = 8+0+2+0 = 10
16進数 FF  → 15×16¹ + 15×16⁰ = 240+15 = 255

10進数 → N進数

10 → 2進数: 10÷2=5...0, 5÷2=2...1, 2÷2=1...0, 1÷2=0...1
                → 余りを逆順に: 1010
255 → 16進数: 255÷16=15...15, 15÷16=0...15
                → 余りを逆順に: FF

JavaScriptでの変換

// N進数文字列 → 10進数
parseInt('1010', 2)   // 10
parseInt('FF', 16)    // 255

// 10進数 → N進数文字列
(10).toString(2)      // "1010"
(255).toString(16)    // "ff"