進数

コンピュータは様々な情報を扱います。
写真、音楽、テキスト等、種類を挙げれば数えきれませんが、
実はこれらの情報は、単なる数値の塊でしかありません。

パソコンに写真や音楽を保存し、視聴する事ができますが、
それはあくまで各アプリケーションが、
数値の塊を写真や音楽として扱っているだけです

どんな情報であったとしても、一部の天才だけが理解している様な、
よく分からない物で作られている訳ではないという事ですね。

ただ一点留意するべき事があります。
それは「コンピュータが扱いやすい数値の形が存在する」という事です。

人は普段、0 から始まり 9 の次で桁が一つ上がるという数値の形を利用しています。
所謂「10 進数」ですが、実はこの形は人が扱いやすい数値の形であって、
コンピュータにとってはそうではないのです。

コンピュータは最終的に全ての情報を 0 と 1 の集合として扱っています。
その為、コンピュータにとって最も扱いやすい数値の形は「2 進数」です。

さらに「2 進数」と相互に変換しやすい形として、
8 進数」「16 進数」という形が存在します。
この中でも特に「16 進数」はコンピュータを扱う中で頻繁に目にします。

プログラムを行う上でも、ビット制御やデータ解析といった事を行う為、
これら進数に関する理解は必須となります。

下記は、進数変換方法の一例となります。

 

進数変換

2進数から10進数へ

2進数の値を X に置き換えると、以下の手順で変換できます。

  1. X の最上位の桁から状態を確認していく
  2. 「1」になっていたら、2^(最上位 – 進んだ数)を求めて加算する
  3. 最下位であれば終わり、違う場合は下位に進んで ② に戻る

 

10進数から2進数へ

10進数の値を X に置き換えると、以下の手順で変換できます。
最下位の桁から埋めていきます。

  1. X を2で割った余りを、その桁に値にする
  2. 上位の桁に進む
  3. X を2で割った値で X を上書きする
  4. X がゼロになれば終わり、ゼロでなければ ① に戻る

 

16進数から10進数へ

やり方は「2進数から10進数へ」と基本同じです。
気を付ける点は、2進数と違い、桁の値が係数になる点です。

 

10進数から16進数へ

やり方は「10進数から2進数へ」と同じです。
2進数の場合は、余りや割り算をする際に「2」で行いましたが、
それを「16」に変える形になります。

 

16進数から2進数へ

16進数の値を 0xXXXX に置き換えると、以下の手順で変換できます。

  1. 「XXXX」を1桁ずつ分解する
  2. 1桁分(0~F)を10進数(0~15)に置き換える
  3. 上記を4桁の2進数に変換する
  4. 変換した2進数を順につなげる

 

2進数から16進数へ

2進数の値を X に置き換えると、以下の手順で変換できます。

  1. X を最下位から4桁ずつ分解する
  2. 分割された4桁の2進数を10進数(0~15)に置き換える
  3. 上記を1桁の16進数(0~F)に変換する
  4. 変換した16進数を順につなげる

 

負数の進数変換

負数(マイナス)の進数変換には、補数を利用します。
下記二つの補数を把握しておく必要があります。

1 の補数2 進数の 1 と 0 を反転させた値
2 の補数1 の補数に 1 を加えた値

なお、その 2 進数が負数なのかかどうかは、2 進数からだけでは判断できません。
必ず「符号付き or 符号なし」の指定が必要になります。
「符号付き」の場合、最上位の値が「プラスかマイナスか」を指すようになります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です