でんきかいでんのブログ

電子工作、ミシン、ペンタブレット、で使える、アイデア・材料・道具の紹介。PCデータのわかりやすいバックアップ方法。こだわり系テンキーレス有線キーボードの使用感レビューなど。

正当なCSSです! クリエイティブ・コモンズ・ライセンス表示

2015.03.20 [金]

16進数ってそういうことか

2進数、8進数、10進数、16進数

 プログラミングでは当たり前のように出てくる10進数以外の表記方法。
 見て、すぐに数値変換まではできなくても、「これは16進数だ」という判別ができることはとても重要ですね。

10進数

 10進数は日常使用している数の表し方です。
 数字の0~9だけを使い、10個ワンセットです。

8進数

 使うのは「0~7」の数字だけです。

 C言語では数字の頭に「0」ゼロを付けると、8進数と解釈されるとのことです。
 例えば、
  「0457」だと10進数でいうところの「303」となります。
  「013」だと10進数では「11」です。
10進数12345678910111213141516
8進数1234567101112131415161720


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進数012345678910111213141516
16進数0123456789ABCDEF10



実は電卓を使うと簡単

 Windows7の場合、アクセサリの中にある「電卓」を使えばそれぞれの表記を簡単に変換できます。

 電卓 → 表示 → プログラマ

 にすると2進、8進、10進、16進、ABCDEF、などのある電卓になるので、10進で数字を入力して、その後で16進などにチェックを入れると16進数の表記が表示されますので、簡単です。

とりあえず判別できるようになればOKでしょ

 「0x01」や「0b1110」、「0457」などと書いてあっても、上記のことを知らなかったらこれが何を示しているのかまったくわかりません。
 が、先頭に「0x」が付いているのは16進数だな、「0b」が付いてるのは2進数だな、「0」だけが付いているのは8進数だな、と知っていれば後は簡単です。
 例えこれがもっと大きな単位になっていても、16進数や2進数や8進数であることさえわかれば、電卓を使えば10進数に変換することもできますから。


関連記事

« NEW  | HOME |  OLD »

コメント

コメントの投稿


「コメント非表示」管理人しか閲覧できないコメントにする。

 | HOME | 

TOPへ