上に数値を入力すると変換ステップが表示されます。
クイックリファレンス:0〜15の全基数表示
| 10進数 | 2進数 | 8進数 | 16進数 |
|---|
基数変換の仕組み
すべての数値システムは基数(使用する固有の桁記号の数)で構成されています。日常の10進数は基数10(0〜9の数字)を使います。コンピュータは本来2進数(基数2、数字0〜1)を使います。プログラマーはバイナリデータの簡潔な表現として8進数(基数8)と16進数(基数16)をよく使います。
2進数から10進数への変換
各2進数桁(ビット)は、右から左に数えた位置0からの位置に基づいて2の累乗を表します。各ビットに桁値を掛けて合計します:
10進数から2進数への変換(繰り返し除算)
10進数を2で繰り返し割り、余りを記録します。余りを下から上に読むと2進数が得られます:
16進数
16進数は16個の記号を使用します:0〜9とA〜F(A=10、B=11、C=12、D=13、E=14、F=15)。1桁の16進数はちょうど4ビットの2進数を簡潔に表します。2桁の16進数が1バイトを表します。これにより、16進数はメモリアドレスやカラーコードに最適です。
なぜ8進数?
8進数(基数8)は初期のコンピュータで普及しました。3ビットの2進数がちょうど1桁の8進数に対応するためです。Unixのファイルパーミッション(chmod 755 = 2進数で111 101 101)や古いプログラミング環境に登場します。
2の補数
コンピュータは2の補数を使って負の整数を表現します。Nビットのレジスタでは:先頭ビットが0なら値は正(符号なしと同じ)。先頭ビットが1なら、符号あり値は符号なし値から2Nを引いた値です。例えば、8ビット11111111 = 255(符号なし) = −1(符号あり)。
2の補数インタープリター
Nビットの2進数を入力して、符号なしと符号あり(2の補数)の両方の解釈を確認できます。上のビット表示パネルで個々のビットを切り替えると、すべての値がリアルタイムで更新されます。
以下の表は一般的な8ビット2の補数の値を示しています:
| 2進数(8ビット) | 符号なし | 符号あり(2の補数) |
|---|---|---|
| 0000 0000 | 0 | 0 |
| 0111 1111 | 127 | 127(最大正値) |
| 1000 0000 | 128 | −128(最小負値) |
| 1111 1111 | 255 | −1 |
| 1111 1110 | 254 | −2 |
| 1000 0001 | 129 | −127 |