2進数の四則演算をやってみる

N進法

こんにちわ。

 

今回は、2進数で四則演算ってどうやっているのか、まとめてみました。

 

コンピュータが苦手な方では、こんなもんか。。。ぐらいに理解してもらえる内容にしたいなと思います。

コンピュータの中ではこういう計算をやっているんだなぁ。。。ぐらいで。

 

ところで、コンピュータの頭脳であるCPUの中で計算は行われるのですが、CPUはレジスタとよばれる数字を入れておく箱をいっくつか持っていて、それを足したり、引いたりしてしています。

その計算結果を別のレジスタと呼ばれる箱に入れてやります。

それがコンピュータの計算です。

 

 

スポンサーリンク

2進数の足し算

 

2進数って「1」「0」と桁上がりをするかしないかしかありません。

 

たとえば、2進数で

 1+0

は、1です。

それが、

 1+1

だと、10とすぐに桁上がりして桁が増えます。

 

では、4桁の2進数の計算の例を出してみましょうか。

 

たとえば、

1101 + 1111

ですと、和は

11100

となります。

 

これ、このように書いてみるとわかりやすいです。

 

 

2進数の引き算

 

2進数の引き算もかなり単純です。

0-0 は、0です。

1-1 ももちろん、0です。

 

そして、

1-0 は、1になります。

 

そして、

0-1 は、上の桁から1を借りることになります。

 

なので、

110-001 の結果は 101 となります。

 

100-001 結果は 011 といきなり2桁上から1を借りてきます。

 

 

 

2進数の掛け算

 

さて、足し算や引き算は普通の小学校で習うような計算なので、わかりやすいと思いますが掛け算は、コンピュータの中ではちょっと特殊なことをしています。

 

本来、掛け算って一方の数 (被乗数) に対して他方の数 (乗数) の回数だけ繰り返し足し算をすることなんですよね。

 

たとえば、7×5って

7+7+7+7+7

という具合に7という被乗数を乗数であらわされるように5回足すという作業です。

 

コンピュータの世界でも、基本そういう作業をすればいいのですが、2進数の世界ではちょっと違うやり方があるということを知ってもらえたらいいかなと思います。

 

簡単な例からいくと10進数

7×2 = 14

で、考えてみましょうか。

 

2進数に直すと

 

111 × 10 = 1110

 

そして、

 

7×4 = 28

 

111 × 100 = 11100

 

このように乗数が2、4、8・・・と2のN乗の場合は、被乗数の後ろにN個の0を足して桁を増やしてやるという作業になります。

 

じゃ、先ほどと同じように7×5をやってみましょうか?

 

とりあえず、2進数に直すと

 

111 × 101

 

となります。

 

被乗数の101を分解してやると、

100 と 1になります。

 

まずは、100を掛けてやります。

2個0を足すんでしたよね。

 

111 × 100 = 11100

 

1については、変化なし

 

111 × 001 = 00111

 

そして、これを足してあげるといいわけです。

 

11100 + 00111 = 100011

 

で、35となります。

 

10進数の掛け算が、乗数であらわされる数だけ被乗数を足すのに対して、2進数では被乗数の桁数で1になっている個数だけ足す作業となります。

 

ただし、準備作業として乗数の桁ごとに必要な0を被乗数に足してあげることが必要です。

 

実際に最近のコンピュータはもっとスマートなやり方をしているはずですが、基礎の基礎はこんな感じです。

 

さて、ここまで来たら2進数の割り算となりますが、残念ながら説明が複雑になりそうで今回はやめておきます。

掛け算までは整数で説明できますが、割り算の場合はあまりはどうするとか、小数になったらどうするとか、ちょっと説明が複雑で説明しきれそうにないので。(笑)

 

 

今回も最後までおつきあい、ありがとうございました。

 

 

 

 

 

コメント

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