すべてのデータに2進数が使われる

コンピューターの世界では、すべてのデータを2進数であらわしています。

2進数というのは、

1桁で 0か1を使い表現します。デジタルデータともいいます。

1桁で、0か1なので 2通りになります。

このコンピューターのデータ最小単位を 1ビットといいます。

電源ONか電源OFFか、電気が点いているか消えているかなど。

では3通り目のはどう表現するのか?というと、

桁が上がります。

2進数左は私たちが普段使う10進数。

0は0、1は1
2は10、3は11、そしてまた桁上り・・

3桁なら3ビット、4桁なら4ビットとなっていきます。

このような 0と1の数字の組み合わせ・並びをビット列といいます。

8bit

1ビットでは2通りしか表せませんが、ビット数が増えると表現できるものが増えてきます。

コンピューターの世界では、1ビットを8つ並べた 8ビットを1バイトとしています。

2進数で8桁になります。

8bitで表せるのは 2の8乗で0~255までの256通りになります。

8bitをひとまとまりとして オクテットということもあります。

ネットワークの規格であるイーサネットの速度を表すbpsでビット、ハードディスクの容量を表す単位でバイトが使われています。

32bit・64bit

CPUやOSには、32bitや64bitというビット数が出てくることがあります。

8bitでも説明しましたように 桁が上がればそれだけ表せるデータの量が増えることになります。

    なので 32bitや64bitというのは、

  • 2の32乗・・4,294,967,296
  • 2の64乗・・18,446,744,073,709,551,616

CPUやOSの32bitや64bitというのは、端的にいえば一度に処理できるデータの幅や量になります。ビット幅ともいいます。

ビット幅が大きいと、それだけ一度に多くの処理を行うことができ、速度も向上します。

CPUやOSというのは、8bit→16bit→32bit→64bitと進化してきています。

24bit カラー

コンピューターは色も2進数で表現します。

例えば 白なら、

11111111.11111111.11111111

オレンジなら、

11111111.10100101.00000000

など。8bitが3つで 24bitです。16,777,216通りの組み合わせがあります。

ディスプレイには ドットやピクセルという1つの点がたくさんあり構成されているのですが、

このひとつのドットに何ビットの情報をもたせているかで 表示できる色の種類が異なり、ハイカラーやフルカラーということがあります。

  • ハイカラー・・1ドットに16bit、65,536色
  • フルカラー・・1ドットに24bit、16,777,216色

パソコンやディスプレイで使われるRGBは このbit数で色彩を表現しています。

文字コード

コンピューターは 2進数の数字の組み合わせで文字も表現します。

このとき使われるのが 文字コードといわれるものです。

例えば 「あ」なら、

1100000.1000010

「T」なら、

1010100

など。

2進数の数字と、文字やアルファベット・記号を対応させたものを 文字コードといいます。

この組み合わせ表を利用して パソコンの画面上に文字や記号を表示させることができます。

文字コードは 8bit(1バイト)、2バイトなどで作られています。

文字コードには ASCII、JIS、Unicodeなどいくつか種類があり、国や地域、機器やアプリケーションによって使用する文字コードは異なってきます。

ハードウェアやアプリケーションで、文字コードの設定が適切に行われないと文字化けが起こります。

10進数での表記

コンピューターの世界では 2進数が使われるのですが、これをそのまま表記していたら分かりづらくなります。

なので 普段使うもののいくつかは 2進数のものが10進数に変換されて表記されています。

代表的なものには IPアドレスがあります。

例えば 192.168.1.1というプライベイトIPアドレスがあるとします。

これは 8bitが4つのオクテットに分かれ 32bitになっています。

2進数では、

11000000.10100100.00000001.00000001

となります。

さすがにこれでは分かりづらいので、2進数を10進数に変換して表示しています。

16進数での表記

16進数は 0~9、A~Fの16種類の数字とアルファベットで表記します。

1桁で16種類、16通り表現できます。

16進数

「これは16進数である」という意味で、数字の先頭に 0xと付けることがあります。

Windowsのエラーコードが、0xで始まっていますが 16進数で示しているということになります。

他に、カラーコードといわれるものがあります。

HTML言語などで 線や文字の色を表現する際に使います。

例えば白なら、

#FFFFFF

オレンジなら

#FFA500

など。先頭にハッシュ記号という #を付け 16進数で表記されます。

文字コードやMACアドレスも 2進数では分かりづらいため 実際は16進数で表記されています。

n桁で何通りか

2進数にしても、10進数、16進数にしても、桁数によって何通り表現されるか?何通りの組み合わせが実現できるか?考えてみましょう。

1桁で表現できるのは、2進数なら0と1の2、10進数なら0~9の10、16進数なら0~9とA~Fの16

ちなみに n進数というときは、1桁で表現できるのは nということになります。

桁数が増えたときの計算ですが、例えば2進数なら1桁で 0か1の2通り、2桁で00、01、10、11の4通りが表現できます。

1桁で、0か1の2通りなので、桁が増える度に×2をしていけばよいことになります。

なので、n桁あるいは nビットの場合は、2n 通りの組み合わせになります。

例えば4ビットなら24 で16通り、8ビットなら28 で256通りです。

フルカラーの24ビットなら224 で16,777,216通り、IPアドレスの32ビットなら232 で4,294,967,296 (約43億)通りということになります。

同様に、10進数なら10n、16進数なら16nで何通りの組み合わせか計算できます。


10進数を2進数・16進数に変換

よく出てくるのが、10進数から2進数の変換です。

10進数を2進数にするときは、10進数の数字を2で割っていきます

最後割り切れない数字、1になるまで2で割っていき、余りを出していきます。

最後の1から並べたものが、2進数になります。

10進数から2進数に変換

10進数を16進数にするときは、2進数のときと同じように今度は16で割っていきます

割り切れない数字、16未満になるまで、余りを出していきます。

最後の数字を並べると16進数になります。

16進数では、余りが10や15になるときがありますが、この場合 10ならA、15ならFになります。

10進数から16進数に変換

2進数を10進数・16進数に変換

次によく出てくるのが、2進数から10進数への変換です。

右から、20212223と覚えておきます。

20は、1になります。どんな数字でも0乗は1という決まりがあります。

右から、1、2、4、8・・を2進数の各桁の数字に掛けていき、合計をすべて足し算します。すると10進数の数字になります。

2進数から10進数に変換

2進数を16進数に変換するという場合は、2進数を10進数にしてから16進数にするという方法がとられます。

例えば、25という10進数なら10進数から16進数への変換にあったように、16で割っていきます。

そうすると余り9、割り切れない数字は1となり、19が16進数です。

2進数の桁数が多いときなどは、2進数を4桁づつで区切ります。2進数の4桁というのは、16通りの組み合わせで16進数の1桁に当てはまります。

一番右から4桁づつで区切り、3桁残ったりしたら 先頭に0を追加します。

2進数から16進数に変換

それぞれのブロックで、10進数を出し、これを16進数へ変換します。

10進数を求めるときは、ブロックで分けず5桁目から 24、25・・となっていきますので、10進数では、6+13ではなく 109です。あくまで16進数を求める時だけ区切って計算します。

16進数を2進数・10進数に変換

16進数は、2進数→16進数でありましたように 16進数の1桁が2進数の4桁にあたります。

なので16進数が出てきたら、1桁が2進数の4桁になることをイメージします。

16進数から2進数に変換

2進数は、0000~1111までが、10進数の0~15、16進数の0~Fになります。

2進数が分からないという場合は、一度10進数にして、10進数→2進数の2で割っていく方法をとれば、2進数は出せます。

16進数は、0~9までは10進数と同じです。10~15が、A~Fだと覚えておけば、それほど難しいものではありません。

なので、例えば16進数の6F2Aは、2進数では、110111100101010になります。先頭の0は省きます。

16進数から10進数にする場合は、2進数→10進数と同じような方法です。

16進数から10進数に変換

まず16進数の各桁を10進数にして、1桁目から160161162163・・・と掛けていきます。

出た数字をすべて足したものが、10進数の数字になります。16進数の6F2Aは 10進数では、28458になります。

Windowsの電卓

Windowsには電卓のアプリケーションが付いています。

アクセサリーの中にあります。

電卓を起動させて、表示→プログラマとすると、2進数、10進数、16進数の相互の変換ができるようになっています。

Winodwsの電卓

2進数、10進数、16進数の適当な数字を紙に書いてみて、上記の方法にある割り算、足し算などで変換し、電卓で答え合わせをするということができます。