デジタル回路 回路 数の表現 高専2年生

【数の表現③】2進数の演算

本日は2進数の加減乗除の手法について学んでいきましょう。

2進数の加算

2進数の加算は基本的に10進数の加算と同じプロセスですが、繰り上げが発生する場合に注意が必要です。

手順:

  1. 一番右の桁から始め、各桁を上から下に加算していきます。
  2. 各桁の合計が2未満なら、その桁の結果としてその数値を書きます。
  3. 各桁の合計が2またはそれ以上の場合、1を次の桁へ繰り上げし、その桁の結果は合計から2を引いた値となります。

例:

    $$ \begin{tabular}{llccc} &1&1&0&1\\ +&1&0&1&1\\ \cline{1-5} 1&1&0&0&0\\ \end{tabular} $$

この加算の手順は次のとおりです:

  1. 最も右の桁は 1 + 1 = 2 なので、その桁の結果は0となり、次の桁に1を繰り上げます。
  2. 次の桁も 0 + 1 = 1 と繰り上げの1を加えて 2 になるので、その桁の結果は0となり、次の桁に1を繰り上げます。
  3. 次の桁も 1 + 0 = 1 と繰り上げの1を加えて 2 になるので、その桁の結果は0となり、次の桁に1を繰り上げます。
  4. 最後に、1 + 1 = 2 と繰り上げの1を加えて 3 になるので、その桁の結果は1となり、さらに次の桁に1を繰り上げます。しかし、これ以上の桁がないので、新しい桁として繰り上げの1を書き加えます。

2進数の減算

2進数の減算も、10進数の減算と同様の考え方で行いますが、こちらでは「繰り下げ」が発生する場面があります。以下に、2進数の減算の基本的な規則を説明します。

  1. 各桁を一番右から左へと順に減算していきます。
  2. 引き算の結果が0または1の場合、そのままその桁の結果とします。
  3. 引き算の結果が負になる場合、すなわち上の数が0で、下の数が1の場合、上の桁から1を繰り下げます。そして、その桁の上の数は2として計算を行います(繰り下げたため)。

具体的な例を使って説明します。

    $$ \begin{tabular}{llccc} &1&1&0&1\\ -&0&1&1&0\\ \cline{1-5} &0&1&1&1\\ \end{tabular} $$

手順:

  1. 最も右の桁: 1 - 0 = 1
  2. 次の桁: 0 - 1 = -1 ですが、この場合、左隣の桁から1を繰り下げて、この桁を2として計算します。よって、2 - 1 = 1となります。
  3. 次の桁: 1(先ほど1を繰り下げたので0になっている) - 1 = 0
  4. 最左の桁: 1 - 0 = 1

2進数の乗算

2進数の乗算も、基本的には10進数の乗算と同じ方法で行います。ただし、掛け算の基本規則は以下の通りです。

  1. 1×1=1
  2. 1×0=0
  3. 0×1=0
  4. 0×0=0

手順:

  1. 掛ける数の各桁を、掛けられる数全体で掛け合わせます。
  2. それによって得られた各結果を縦に並べて足し合わせます。このとき、掛ける数の桁が左に移動するごとに、結果を1つ桁を左にずらして記述します。

具体的な例:

掛けられる数: 1011 掛ける数: 1101

乗算を行うと以下のようになります。

    $$ \begin{tabular}{cccccccc} && & & 1 & 0 & 1 & 1\\ \times& & & & 1 & 1 & 0 & 1\\ \cline{1-8} && & & 1 & 0 & 1 & 1\\ && & 0 & 0 & 0 & 0 &\\ && 1 & 0 & 1 & 1 & &\\ +&1& 1 & 0 & 1 & & &\\ \cline{1-8} 1 & 0 & 0 & 0 & 1 & 1 & 1 & 1\\ \end{array} $$

最後に、得られたすべての行を加算して最終的な結果を得ます。この場合、111111(2進数)となります。

2進数の乗算も、基本的な掛け算と加算の知識を元にして進めていくことができます。

2進数の除算

2進数における除算も、基本的には10進数の除算と似たプロセスを取りますが、操作はもっとシンプルです。なぜなら、2進数には0と1しかないため、ある桁が被除数より大きいか小さいかだけを判断する必要があります。

2進数の除算の基本的なステップ:

  1. 初期設定: 商と余りを0に初期化します。
  2. 左から順に: 被除数の最左の桁から開始して、除数と比較します。
  3. 比較:
    • もし現在の被除数の部分が除数より小さい場合、商の現在の桁には0を書きます。
    • もし現在の被除数の部分が除数以上の場合、商の現在の桁には1を書き、その部分から除数を引きます。
  4. 右へ移動: 次の桁へ移動します。
  5. 完了: 全ての桁を処理し終えるまで2〜4を繰り返します。

: 1101÷10

解答プロセス:

  1. 1 (最初の桁) は10より小さいので、商のその位置に0を書きます。
  2. 次に、11 (最初の2桁) を見ます。これは2より大きいので、商のその位置に1を書き、11から2を引きます。結果、残りは1です。
  3. この1に次の桁の0を下ろして、10となります。これは2と同じなので、商のその位置に1を書き、10から2を引きます。結果、残りは0です。
  4. 最後の桁の1を下ろして、01となります。これは2より小さいので、商のその位置に0を書きます。

したがって、1101÷101101÷10 の商は110で、余りは1です。

    $$ \begin{tabular}{ccccccc} &&&0&1&1&0\\ \cline{3-7} 1&0&)&1&1&0&1\\ &&&1&0&&\\ \cline{4-6} &&&&1&0&\\ &&&&1&0&\\ \cline{5-7} &&&&&0&1\\ \end{array} $$

確認テスト

数の表現③確認テストはこちら

Follow me!

-デジタル回路, 回路, 数の表現, 高専2年生
-, , ,

PAGE TOP