基数変換
0x2Fは47。毎回は覚えていられない。
例を読み込むと入力と設定が一時的に変わります。元の内容に戻せます。
0文字
出力
上に貼り付けるか入力すると、ここに結果が表示されます。
ファイルは端末の外に出ません
このツールはすべてブラウザ内で動作します。貼り付けた内容は端末内で処理され、サーバーには送信されないため、トークンや鍵、未公開の文章でも安心して使えます。
使用例
例:カラーコード #1E90FF をRGBの10進数(0〜255)に分けて確かめる
Webデザインの課題で、CSSの色 #1E90FF をお絵かきソフトのRGB欄(0〜255)に写したい場面です。「入力を読む基数」は10進数のまま、0x1E、0x90、0xFF と、まとめた 0x1E90FF の4行を入力し、「バイトごとに区切って表示」をオンにします。
- 0x を付けた行は設定にかかわらず16進数として読まれます。0x1E は30、0x90 は144、0xFF は255で、これがR・G・Bの値です。
- 0x1E90FF の行はバイト区切りが「1E 90 FF」となり、R・G・Bの順にそのまま並びます。1つの数として見た10進数は2003199です。
- CSSからコピーした #1E90FF もそのまま入力できます。先頭の # は 0x と同じく16進数の印として読まれ、結果は 0x1E90FF の行と同じです。
- 0x を付けずに FF とだけ入力するなら、「入力を読む基数」を16進数に切り替えます。10進数のままだと「10進数の数ではありません」になります。
| 入力 | 2進数 | 8進数 | 10進数 | バイト |
|---|---|---|---|---|
| 0x1E(R) | 11110 | 36 | 30 | 1E |
| 0x90(G) | 10010000 | 220 | 144 | 90 |
| 0xFF(B) | 11111111 | 377 | 255 | FF |
| 0x1E90FF | 111101001000011111111 | 7510377 | 2003199 | 1E 90 FF |
R 30・G 144・B 255 と分かり、ソフトの入力欄にそのまま打ち込めます。2進数も一緒に出るので、「1バイトは8ビット」の確認にも使えます。0x1E は5桁の11110と出るので、8ビットで書くときは頭に0を足して00011110にします。
使い方
- 数値を1行に1つずつ入力します。
- どの基数で読むかを選びます。0x・0b・0oを付けた場合はそちらが優先されます。
- 主要な基数がまとめて表示されるので、二度変換する必要はありません。
- メモリダンプや通信仕様を読むときは、バイト区切り表示をオンにしてください。
よくある質問
- 基数を毎回指定する必要がありますか?
- 接頭辞のない数値だけです。0x2F、0b1010、0o17は設定にかかわらずその表記どおりに読みます。デバッガやバイナリエディタ、スタックトレースからコピーしてくると、たいていこの形で入ってくるためです。
- 64ビットの値も正しく扱えますか?
- はい。多倍長で計算しているので、0xFFFFFFFFFFFFFFFFは18446744073709551615として返ります。JavaScriptの通常の数値型で計算するツールだと下位の桁が静かに丸められますが、その静かさこそが厄介なので避けています。
- 36進数などは何に使うのですか?
- 32進数・36進数は短い識別子やURL短縮に、12進数や7進数はパズルや課題に出てきます。数字とアルファベットで表せる上限が36進数なので、そこまで対応しています。
- 小数は変換できますか?
- 整数のみです。2進小数はそれ自体が別の落とし穴を持つ話題で、0.1がきれいに変換できるかのように見せるのがいちばん大きな落とし穴になります。
- カラーコードの # や 0x は付けたままでいいですか?
- どちらも付けたままで構いません。0x も # も、設定にかかわらず16進数として読みます。#1E90FF を入力し、「バイトごとに区切って表示」をオンにすると 1E 90 FF とR・G・Bに分かれて出ます。
- 2進数の頭の0が消えるのはなぜですか?
- 数は先頭の0を付けずに返すためです。0x1E は11110、0x0F は1111と出ます。8ビットの形が必要なときは、左に0を足して8桁(00011110、00001111)にしてください。
- サーバーに送信されますか?
- いいえ。ブラウザの中だけで動くので、入力した内容はお使いのパソコンから出ません。