RGBカラーコード
color: #ff8800;color: rgb(255, 136, 0);16進数2桁が1チャンネル分の1バイト(0–255)に対応します。ff = 255、88 = 136、00 = 0。
2進数・8進数・10進数・16進数の間で数値を変換。
最終更新
基数変換ツールは、2進数・8進数・10進数・16進数といった異なる記数法の間で数値を書き換えるためのツールです。ビットマスクの読み解き、カラーコードのデバッグ、プロトコルパケットのフラグ解析、ハードウェアレジスタの確認、CSSやアセンブリ・暗号処理での16進⇔10進の変換まで、開発の現場で意外と出番が多い作業です。
基数を変えても数値そのものは変わりません。変わるのは「表記」だけです。10進数の 255 は16進数なら 0xFF、2進数なら 0b11111111、8進数なら 0o377。同じ値を4通りの方法で書いているだけ、ということになります。
良いツールなら、巨大な数値も精度を落とさずに扱えるべきです。JavaScript標準の parseInt は 2⁵³ を超える値を黙って丸めてしまうため、64ビットレジスタの値・ID・タイムスタンプなどで地味なバグの原因になります。このツールは内部で BigInt を使っているので、256ビットの16進数値でもラウンドトリップで完全に元に戻ります。
0xCAFE は2進数で 1100 1010 1111 1110。圧倒的に読みやすい。手元の数値に合わせて、2進数・8進数・10進数・16進数のいずれかを選びます。
16進数は ff でも 0xff でもOK。2進数も 1010 でも 0b1010 でも構いません。プレフィックスは自動で取り除かれます。
同じ数値の4種類の表記が瞬時に表示されます。任意の表記をクリックすればコピーできます。
2進数は4ビット区切り(1100 1010 1111 1110)、16進数は2文字区切り(CA FE)にできます。ビットフィールドやメモリダンプを目視確認するときに便利です。
4つの基数でよく出てくる代表値をまとめました。下の表記の文法は、JavaScriptの BigInt と数値リテラルのルールに従います。
| 10進数 | 2進数 | 8進数 | 16進数 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 8 | 1000 | 10 | 8 |
| 10 | 1010 | 12 | A |
| 16 | 10000 | 20 | 10 |
| 32 | 100000 | 40 | 20 |
| 64 | 1000000 | 100 | 40 |
| 100 | 1100100 | 144 | 64 |
| 128 | 10000000 | 200 | 80 |
| 255 | 11111111 | 377 | FF |
| 256 | 100000000 | 400 | 100 |
| 1024 | 10000000000 | 2000 | 400 |
| 65535 | 1111111111111111 | 177777 | FFFF |
color: #ff8800;color: rgb(255, 136, 0);16進数2桁が1チャンネル分の1バイト(0–255)に対応します。ff = 255、88 = 136、00 = 0。
5
0b101
ビット0(read)が立っていて、ビット2(execute)も立っている。ビット1(write)は0。つまり read + execute の権限を表しています。
Unixのファイルモード(chmod)、フィーチャーフラグ、プロトコルパケットなどは、複数のbool値を1つの整数のビットに詰め込んで表現します。2進数表示にすると、その構造がそのまま見えます。
0xFFFFFFFFFFFFFFFF
18446744073709551615
符号なし64ビット整数の最大値です。JavaScriptの通常の parseInt では精度が落ちますが、BigIntならきれいに変換できます。
0x10 と 10 は見た目は似ていますが、それぞれ16と10です。コード中では基数プレフィックスを必ず付けましょう。parseInt(big, 16) を使ってしまう。代わりに BigInt('0x' + hex) を使ってください。1010 なら 1·8 + 0·4 + 1·2 + 0·1 = 10。手計算が面倒なときはこの基数変換ツールに貼り付ければ即答が出ます。255 ÷ 16 = 15 余り 15 → FF。#ff8800)、メモリアドレス、ファイルダンプ、MACアドレス、ハッシュ値、低レイヤーのシステム全般などです。0755)やC系言語の数値リテラルの一部にはまだ残っています。