N2
NanToo
AD
開発者向け

進数変換ツール

2進数・8進数・10進数・16進数を相互変換。リアルタイム同時表示、ビット数計算、プレフィックス自動判別。BigInt対応で64bit超の大きな数値も変換可能。

入力

リファレンス値

AD

進数変換ツールについて

進数(基数)とは?

進数(基数、radix)とは、数値を表現するための桁の数え方のことです。日常生活では10進数(0〜9の10種類の数字)を使いますが、コンピュータの世界では2進数・8進数・16進数が頻繁に使われます。

主な基数の種類

  • 2進数(バイナリ):0と1の2種類のみ。コンピュータの内部表現そのもので、すべてのデジタルデータの基本です。
  • 8進数(オクタル):0〜7の8種類。Unix/Linuxのファイルパーミッション(chmod 755 など)で今も現役です。
  • 10進数(デシマル):0〜9の10種類。人間が日常的に使う最も一般的な表記法です。
  • 16進数(ヘキサデシマル):0〜9とA〜Fの16種類。メモリアドレス、カラーコード(#FF0000)、MACアドレスなどに使われます。

進数変換の仕組み

進数変換は、ある基数で表現された数を別の基数に変換する操作です。基本的な考え方は「いったん10進数に変換してから目的の基数に変換する」方法です。

2進数から10進数への変換例

2進数 1101 を10進数に変換する場合:

1×23 + 1×22 + 0×21 + 1×20
= 8 + 4 + 0 + 1
= 13

10進数から2進数への変換例

10進数 13 を2進数に変換する場合、2で割り続けて余りを逆から読みます:

13 ÷ 2 = 6 余り 1
6 ÷ 2 = 3 余り 0
3 ÷ 2 = 1 余り 1
1 ÷ 2 = 0 余り 1
→ 余りを逆順に並べて 1101

16進数と2進数の対応

16進数の1桁は2進数の4桁に対応するため、簡単に相互変換できます。例えば 0xFF = 1111 1111(2進数)= 255(10進数)。

プログラミングにおけるプレフィックス表記

多くのプログラミング言語では、数値リテラルの基数をプレフィックスで指定できます。

  • 0b(2進数):0b1010 = 10進数の10。JavaScript, Python, C/C++, Rust, Go などで使用。
  • 0o(8進数):0o17 = 10進数の15。JavaScript(ES6), Python3, Rust で使用。C/C++では 017(先頭0のみ)。
  • 0x(16進数):0xFF = 10進数の255。ほぼすべての言語で使用。

本ツールではプレフィックス付きの入力も自動検出します。例えば「0xFF」と入力すると、自動的に16進数モードに切り替わります。

実用的なユースケース

進数変換が必要になる主なシーンをまとめました。

ネットワーク

  • IPアドレス:サブネットマスク計算では2進数表記が必須(例:255.255.255.0 = 11111111.11111111.11111111.00000000)
  • MACアドレス:16進数6オクテット表記(00:1A:2B:3C:4D:5E)

Webデザイン

  • カラーコード:#RRGGBB形式は16進数。#FF0000 = 赤 (R=255, G=0, B=0)

システム管理

  • ファイルパーミッションchmod 755 の各桁は8進数(7 = rwx = 111、5 = r-x = 101)
  • メモリアドレス:16進数で表記(0x7FFF0000 など)

組み込み・ハードウェア

  • レジスタ値:ビット単位のフラグ操作にはバイナリ表記が必須
  • 通信プロトコル:パケットダンプは16進数で表示される

ビット演算の基礎

ビット演算(bitwise operation)は、整数を2進数で表現した各ビットに対して行う演算です。低レベルプログラミングやパフォーマンス最適化で多用されます。

  • AND(&):両方1のとき1。マスク処理に使用。0b1100 & 0b1010 = 0b1000
  • OR(|):どちらか1のとき1。フラグのセットに使用。0b1100 | 0b1010 = 0b1110
  • XOR(^):異なるとき1。トグルに使用。0b1100 ^ 0b1010 = 0b0110
  • NOT(~):ビット反転。~0b1100 = 0b0011(ビット幅に依存)
  • 左シフト(<<):2倍。0b0001 << 3 = 0b1000(1→8)
  • 右シフト(>>):半分(切り捨て)。0b1000 >> 2 = 0b0010(8→2)

本ツールで数値を2進数に変換すれば、ビット演算の結果を視覚的に確認できます。

よくある質問

Q. 入力したデータはサーバーに送信されますか?
いいえ。すべての変換処理はブラウザ内のJavaScriptで完結しており、入力データがサーバーに送信されることはありません。
Q. 非常に大きな数値にも対応していますか?
はい。内部でJavaScriptのBigIntを使用しているため、64ビット整数(最大値:9223372036854775807)やそれを超える任意精度の整数も正確に変換できます。
Q. 負の数値は変換できますか?
本ツールでは符号なし(正の整数)を対象としています。負の数を扱う場合は2の補数表現など、ビット幅に依存する解釈が必要になるため、現在のバージョンでは対応していません。
Q. 小数(浮動小数点数)は変換できますか?
現在のバージョンでは整数のみ対応しています。浮動小数点数のバイナリ表現(IEEE 754)は異なる仕組みのため、別途専用のツールが必要です。
Q. プレフィックス(0b, 0o, 0x)を付けて入力できますか?
はい。「0b1010」「0o17」「0xFF」のようにプレフィックス付きで入力すると、自動的に対応する基数に切り替わります。
Q. 16進数の大文字と小文字の違いは?
数値としての意味は同じです(FFとffは同じ値)。慣習的に、メモリアドレスやカラーコードでは大文字(0xFF)、CSSのカラーコードでは小文字(#ff0000)が使われることが多いです。本ツールでは両方の表記を同時に表示します。
Q. 「ビット数」と「バイト数」は何を表していますか?
ビット数は2進数で表現したときの桁数で、その数値を格納するのに最低限必要なビット数を示します。バイト数はビット数を8で割って切り上げた値で、メモリ上で必要なバイト数の目安になります。例:255は8ビット(1バイト)、256は9ビット(2バイト)です。

関連ツール

このツールを評価
(0件)