コンピュータ

2進数を分かりやすく解説

2020年10月5日

2進数とは

動画でも紹介していますので、よろしければご覧ください。

2進数って何のためにあるの?

コンピュータが扱う最小単位は「ビット」(bit)です。1ビットで表現できる数字は、「0」と「1」の2つだけであり、この「0」と「1」という2個の数字で数をあらわすのが2進数です。

コンピュータは、この「0」と「1」の集まりしか理解できません。そのためコンピュータでは、2進数の集まり(バイナリデータ)でデータを表現します。

2進数とは

私たち人がものを数える時には、「0」~「9」という10個の数字を使います。この10個の数字で数をあらわすことを10進数といいます。

ポイント

  • 人が扱うのが「10進数」
  • コンピュータが扱うのが「2進数」

スポンサーリンク

2進数から10進数への変換

2進数を10進数へ変換するには、各桁の数に対して「重み」をかけ、それを合算することで求めることができます。

「重み」とは、1桁あがるごとに増えていく(2進数の場合は2倍)値のことです。

例えば、次のように2進数の桁が1桁あがることに「2のn乗」のnが増えていきます。

  • 2進数「1」→ 2の0乗 → 10進数「1」
  • 2進数「10」→ 2の1乗 → 10進数「2」
  • 2進数「100」→ 2の2乗 → 10進数「4」
  • 2進数「1000」→ 2の3乗 → 10進数「8」

2進数から10進数への変換方法

上記は、2進数「1011」を10進数へ変換するイメージ図です。

2進数から10進数へ変換する手順は次の通りです。

【手順1】 各桁の数に「重み」をかけた数を計算する。

  • 4桁目:1 × 2の3乗 = 8
  • 3桁目:0 × 2の2乗 = 0
  • 2桁目:1 × 2の1乗 = 2
  • 1桁目:1 × 2の0乗 = 1

【手順2】手順1で算出した値を合算すると10進数の値となる。

8 + 0 + 2 + 1 = 11

10進数から2進数への変換

10進数から2進数へ変換するには、10進数の値を2で割り算していくと求めることができます。

以下は10進数「11」を2進数へ変換するイメージ図です。

10進数から2進数への変換方法

10進数から2進数へ変換する手順は次の通りです。

【手順1】 変換したい10進数を2で割り商を下に、余りを右に書く。

【手順2】商をさらに2で割り、商が0になるまで割り算を繰り返す。

11 ÷ 2 = 5 余り 1
5 ÷ 2 = 2 余り 1
2 ÷ 2 = 1 余り 0
1 ÷ 2 = 0 余り 1

【手順3】最後に余りを下から順に読むと2進数の値となる。

8進数と16進数

コンピュータは、2進数である「0」と「1」の集まりを使用します。しかし「0」と「1」しか使えない表記では、数をあらわすのに桁数がかさんでしまいます。

そこで、1桁である程度まとまった区切りの数をあらわすことができ、コンピュータとも相性の良い「n進数表記」が存在しています。その中でも代表的なものに「8進数」と「16進数」があります。

コンピュータの世界では、8ビットをひとまとまりにした「バイト」(byte)という単位が一般的です。この「バイト」をあらわす数として16進数がよく用いられています。

2進数、10進数、8進数、16進数の対応表

10進数の0~16までの整数を2進数、8進数、16進数に変換した対応表は次の通りです。

10進数2進数8進数16進数
0000
1111
21022
31133
410044
510155
611066
711177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F
16100002010

スポンサーリンク

2進数から8進数への変換

2進数を8進数へ変換するには、2進数を3桁ごとに区切り、この区切り単位で10進数に直すことで8進数を求めることができます。

2進数から8進数への変換方法

上記は、2進数「1011」を8進数へ変換するイメージ図です。

2進数から8進数へ変換する手順は次の通りです。

【手順1】 2進数を3桁ごとに区切る。(3桁ない所には0を補う)

1011

001 と 011 に分ける

【手順2】手順1で区切った、区切り単位で10進数を求める。

2進数「001」→ 10進数「1」

2進数「011」→ 10進数「3」

【手順3】手順2で求めた10進数を連結すれば8進数の値となる。

10進数「1」と「3」を連結する

8進数「13」

2進数から16進数への変換

2進数を16進数へ変換するには、2進数を4桁ごとに区切り、この区切り単位で10進数に直すことで16進数を求めることができます。

2進数から16進数への変換方法

上記は、2進数「10011011」を16進数へ変換するイメージ図です。

2進数から16進数へ変換する手順は次の通りです。

【手順1】 2進数を4桁ごとに区切る。(4桁ない所には0を補う)

10011011

1001 と 1011 に分ける

【手順2】手順1で区切った、区切り単位で10進数を求める。

2進数「1001」→ 10進数「9」

2進数「1011」→ 10進数「11」

【手順3】手順2で求めた10進数を16進数表記に直す。

10進数「9」 → 16進数「9」

10進数「11」 → 16進数「B」

【手順4】手順4で求めた16進数を連結する。

16進数「9」と「B」を連結する

16進数「9B」

8進数から2進数への変換

8進数から2進数へ変換する手順は次の通りです。

【手順1】8進数をバラバラ(2進数から8進数を求めた時と逆のことをする)にして10進数に戻す。

8進数「15」

10進数「1」と「5」

【手順2】手順1の10進数から2進数(3桁の2進数※3桁ない場合は0で補う)を求める。

10進数「1」 → 2進数「001」

10進数「5」 → 2進数「101」

【手順3】手順2で求めた2進数を連結する。

2進数「001」と「101」

2進数「001101」

16進数から2進数への変換

16進数から2進数へ変換する手順は次の通りです。

【手順1】16進数をバラバラ(2進数から16進数を求めた時と逆のことをする)にして10進数に戻す。

16進数「9B」

10進数「9」と「11」

【手順2】手順1の10進数から2進数(4桁の2進数※4桁ない場合は0で補う)を求める

10進数「9」 → 2進数「1001」

10進数「11」 → 2進数「1011」

【手順3】手順2で求めた2進数を連結する

2進数「1001」と「1011」

2進数「10011011」

文字コード

コンピュータは、この「0」と「1」の集まりしか理解できません。では「A」や「あ」などのような文字をどうやって表示しているのでしょうか。

文字コードとは

コンピュータに文字を表現させているのは「文字コード」と呼ばれるものです。

文字コードは、コンピュータが理解できる「0」と「1」の集まりと、文字の対応表を作り、コンピュータはその対応表通りに文字を表現しています。

helpful