2021年8月30日月曜日

二進数の計算

二進数とは

 2進数とは、「0」と「1」の2種類の数字を用いて全ての数を表現する方法。
日頃使用している10進数では、「0」から数えて「9」の次は、位があがる。
2進数では、「 1 」の次に位があがる。
位があがれば、その新しい桁は、 「 1 」 となり、それ以下の桁は全て 「 0 」 となる。

二進数と十進数を対応させてみる

 十進数

0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,・・・

二進数

0,1,01,11,100,101,110,111,1000,1001,1010,1011,1100,1101,1110,1111,10000,・・・

二進数から十進数へ変換する方法

ポイントは、二進数の桁があがるタイミングにあります。
桁があがるタイミングを調べてみる。

1   ・・・1=2^0
10   ・・・2=2^1
100   ・・・4=2^2
1000 ・・・8=2^3
10000 ・・・16=2^4

つまり、「1」となっているn桁を調べて、2^nを足すことで変換可能。

例題1)

10110

1*2^4+0*2^3+1*2^2+1*2^1+0*2^0
=16+0+4+2+0
=22

十進数から二進数へ変換する方法

 ここでは、最も原始的な方法と思われる方法で解説する。
例題1)の逆の手順を行えば変換できる。

例題2)

28

まず、はじめに、「1,2,4,8,16,32・・・」の1桁に相当する数の中で越えない一番近い数字を探す。

今回の場合は、「32」は、「28」を超えるため「16」の桁を「1」とする。

次に、16の次の「8」を16に足すと
16+8=24
「24」となり、「28」を越えないので「8」の桁を「1」とする。

次に、「8」の次の桁「4」を足すと「28」となるので、「4」の桁を「1」とする。

次に、「4」の次の桁「2」を足すと「30」となるので、「2」の桁を「0」とする。

最後に、「1」の桁を足すと「29」となるので「1」の桁は「0」とする。

よって「28」は二進数で表すと「11100」となる。