2進数、8進数、10進数、16進数
プログラミングでは当たり前のように出てくる10進数以外の表記方法。
見て、すぐに数値変換まではできなくても、「これは16進数だ」という判別ができることはとても重要ですね。
10進数
10進数は日常使用している数の表し方です。
数字の0~9だけを使い、10個ワンセットです。
8進数
使うのは「0~7」の数字だけです。
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などの容量で使われている数字と同じですね。
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の色はこんな色です。■
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 |
▶▶ クリックして続きを読む ◀◀