【ITパスポート】2進数の計算

ITパスポート

2進数の表現

10進数は1ケタで「0」〜「9」の10個の数を表しますよね。
同様に、2進数は1ケタで「0」〜「1」の2個の数を表します。
10進数や2進数の「10」や「2」は1ケタがこの数でいっぱいになったらケタ上げするよということです。

2進数がどんな書き方になるかというと次のようになります。

各ケタには重みがあります。
例えば、10進数で253とあった場合
253 → 2×102 + 5×101 + 3×100
となるよね。
この、100の位の100、10の位の10、1の位の1が10進数の書くケタの重みだよ。

同様に、2進数では111とあった場合、各ケタの重みは
111 → 1×22 + 1×21 + 1×20
となるよ。
これを使って、2進数の数が10進数の何になるかを計算できるよ。
1×22 + 1×21 + 1×20 = 7(10進数)

2進数の足し算、引き算

足し算、引き算は、同じケタを足したり、引いたり、ケタ上がり、ケタ下がりしたりと、10進数と2進数で違いはないよ。

足し算
10進数         2進数
  1 2 5          1 0
+   9 3      +   1 1
ーーーーーーー      ーーーーーーー
  2 1 8        1 0 1

引き算
10進数         2進数
  1 2 5        1 0 1
ー   8 3      ー   1 0
ーーーーーーー      ーーーーーーー
    4 2          1 1

負の数

負の数を表すのには補数を使うよ
補数はある数に足した時にケタ上がりする最小の数だよ。。。って、意味不明。。。だよね。

例えば、10進数で考えると、ある数を125として、ケタ上がりした数を1000とすると
1000 ー 125 = 875
この875が10の補数だよ。

2進数だと、ある数を0101として、ケタ上がりした数を10000とすると
10000 ー 0101 = 1011
この1011が2の補数だよ。

これを足し算してみると
  0 1 0 1
+ 1 0 1 1
ーーーーーーーーー
1 0 0 0 0

となり、ケタ上がりしたところを無視して4ビット分だけ見ると0になっている
つまり1011は−5を表していることになるんだよ。

コンピューターでは負の数を2の補数を使うよ。

2の補数は0と1を入れ替えて1を加えることで作れるよ。

0 1 0 1
   ↓
1 0 1 0  0と1を入れ替え
   ↓
1 0 1 1  1を加える

コメント

タイトルとURLをコピーしました