2015.03.20 [金]
16進数ってそういうことか
2進数、8進数、10進数、16進数
プログラミングでは当たり前のように出てくる10進数以外の表記方法。
見て、すぐに数値変換まではできなくても、「これは16進数だ」という判別ができることはとても重要ですね。
見て、すぐに数値変換まではできなくても、「これは16進数だ」という判別ができることはとても重要ですね。
10進数
10進数は日常使用している数の表し方です。
数字の0~9だけを使い、10個ワンセットです。
数字の0~9だけを使い、10個ワンセットです。
8進数
使うのは「0~7」の数字だけです。
C言語では数字の頭に「0」ゼロを付けると、8進数と解釈されるとのことです。
例えば、
「0457」だと10進数でいうところの「303」となります。
「013」だと10進数では「11」です。
C言語では数字の頭に「0」ゼロを付けると、8進数と解釈されるとのことです。
例えば、
「0457」だと10進数でいうところの「303」となります。
「013」だと10進数では「11」です。
10進数 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
8進数 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 20 |
2進数
2進数は数字の「0」と「1」だけしか使いません。
2進数だと判別するため、表記時は基本的に、
「0b」を頭に付けて「0b11101011」と書くようです。
0b1010
↑この場合、内容を10進数にすると、
8×1 + 4×0 + 2×1 + 0×1 になり、
10進数だと10です。
0b1110 1011
↑これだと、128×1+64×1+32×1+16×0 + 8×1+4×0+2×1+1×1 になり、
10進数では235となります。
桁の少ない位から1、2、4、8、16、32、64、128、256、512、と次の桁が倍数になって上がっていきます。
PCメモリやHDDなどの容量で使われている数字と同じですね。
2進数だと判別するため、表記時は基本的に、
「0b」を頭に付けて「0b11101011」と書くようです。
0b1010
↑この場合、内容を10進数にすると、
8×1 + 4×0 + 2×1 + 0×1 になり、
10進数だと10です。
0b1110 1011
↑これだと、128×1+64×1+32×1+16×0 + 8×1+4×0+2×1+1×1 になり、
10進数では235となります。
桁の少ない位から1、2、4、8、16、32、64、128、256、512、と次の桁が倍数になって上がっていきます。
PCメモリやHDDなどの容量で使われている数字と同じですね。
16進数
16進数の場合は、「0~9」の数字と「A~F」のアルファベットも使います。
並びは、0123456789ABCDEF です。
10進数の「10」は、16進数だと「A」の1文字です。
が、C言語ではこれが16進数の数字だとわかるように先頭に「0x」を付けます。
なので、表記上は「0xA」となります。
15は「0xF」です。
16は「0x10」、17は「0x11」、18は「0x12」、27は「0x1B」、31は「0x1F」、32は「0x20」、、、。
#FFCC00などの、カラーコードも16進数です。
カラーコードの場合はRGBそれぞれの数字なので、#FFCC00だと、R(赤)の「FF」、G(緑)の「CC」、B(青)の「00」という色光の三原色の組み合わせで、R255、G204、B00、という意味になります。
ついでに書いておくと、#FFCC00の色はこんな色です。■
並びは、0123456789ABCDEF です。
10進数の「10」は、16進数だと「A」の1文字です。
が、C言語ではこれが16進数の数字だとわかるように先頭に「0x」を付けます。
なので、表記上は「0xA」となります。
15は「0xF」です。
16は「0x10」、17は「0x11」、18は「0x12」、27は「0x1B」、31は「0x1F」、32は「0x20」、、、。
#FFCC00などの、カラーコードも16進数です。
カラーコードの場合はRGBそれぞれの数字なので、#FFCC00だと、R(赤)の「FF」、G(緑)の「CC」、B(青)の「00」という色光の三原色の組み合わせで、R255、G204、B00、という意味になります。
ついでに書いておくと、#FFCC00の色はこんな色です。■
10進数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16進数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | 10 |
実は電卓を使うと簡単
Windows7の場合、アクセサリの中にある「電卓」を使えばそれぞれの表記を簡単に変換できます。
電卓 → 表示 → プログラマ
にすると2進、8進、10進、16進、ABCDEF、などのある電卓になるので、10進で数字を入力して、その後で16進などにチェックを入れると16進数の表記が表示されますので、簡単です。
電卓 → 表示 → プログラマ
にすると2進、8進、10進、16進、ABCDEF、などのある電卓になるので、10進で数字を入力して、その後で16進などにチェックを入れると16進数の表記が表示されますので、簡単です。
とりあえず判別できるようになればOKでしょ
「0x01」や「0b1110」、「0457」などと書いてあっても、上記のことを知らなかったらこれが何を示しているのかまったくわかりません。
が、先頭に「0x」が付いているのは16進数だな、「0b」が付いてるのは2進数だな、「0」だけが付いているのは8進数だな、と知っていれば後は簡単です。
例えこれがもっと大きな単位になっていても、16進数や2進数や8進数であることさえわかれば、電卓を使えば10進数に変換することもできますから。
が、先頭に「0x」が付いているのは16進数だな、「0b」が付いてるのは2進数だな、「0」だけが付いているのは8進数だな、と知っていれば後は簡単です。
例えこれがもっと大きな単位になっていても、16進数や2進数や8進数であることさえわかれば、電卓を使えば10進数に変換することもできますから。
- 関連記事
-
-
Hz(ヘルツ)とは? 2015/03/17
-
16進数ってそういうことか 2015/03/20
-
トランジスタ ECB 2016/03/27
-
フォローしておきたい電子工作関連情報 2016/04/13
-
コメントの投稿