![2つの2進数を分割する方法](https://i.ytimg.com/vi/SqIpxX14nUs/hqdefault.jpg)
コンテンツ
この記事の内容:ロング除算法を使用する2部補完法を使用する
2進数の除算の問題は、このプロセスを学習したり、コンピューターで簡単なプログラムを作成したりするのに便利な長除法を使用して解決できます。それ以外の場合、連続減算の補完的な方法は、プログラミングでは一般的に使用されていますが、なじみのないアプローチを提供します。機械語は通常、効率を高めるために推定アルゴリズムを使用しますが、ここでは説明しません。
ステージ
方法1長分割法を使用する
-
小数での長い除算の方法を確認する. 通常の小数(10を基数)で長い除算法を長期間使用していない場合は、次の例を使用して基数を修正します。172÷4.それ以外の場合、この手順をスキップして次の手順に進んで2進数にも同じプロセスが適用されます。- インクルード 配当 によって分割されます 除数 そして、この操作の結果は 商.
- 除数を配当の最初の桁と比較します。除数が後者より大きい場合、除数が低くなるまで、被除数に10を加算し続けます。たとえば、172÷4という4つの区分では、4と1を比較する必要があります。4> 1であることに注意して、代わりに4と17を比較してください。
- 比較で使用した配当の最後の桁の上に商の最初の桁を書きます。 4と17を比較すると、4に4を掛けた結果は17未満であることがわかります。したがって、商の最初の数字として4を7の上に書き込みます。
- 乗算と減算を実行して、残りを見つけます。商数に除数を掛けます。この場合は4 x 4 = 16です。17の下に16を書き込み、16-17を引いて残りの1を見つけます。
- 操作を繰り返します。もう一度、除数(4)を次の数字(1)と比較し、4> 1であることに注意して、今度は4を12と比較するために配当の次の数字を「戻す」必要があります。 4に3を掛けて12にすると、何も残りません。商の次の数字は3です。答えは43です。
-
問題を長い区分として書きます。 次の例を使用してみましょう:10 101÷11.これを長い除算として書きます。10101を被除数の代わりに、11を除数にします。以下に商を書き、計算を書くためのスペースを残します。 -
除数を配当の最初の桁と比較します。 これは小数を含む長い除算のように機能しますが、実際には少し簡単です。数値を除数(0)で除算できないか、除数(1)で1回除算できます。- 11>1。したがって、1を11で割ることはできません。商の最初の数字として0を入力します(被除数の最初の数字の上)
-
次の番号に移動し、1が得られるまで操作を繰り返します。 この例の手順は次のとおりです。- 配当の次の桁を戻します。 11> 10.商に0を書き込む
- 次の番号に戻します。 11 <101。商に1を書き込む
-
残りを見つけます。 小数の長い除算については、見つけた数(つまり1)に除数(つまり11)を掛けて、結果を被除数の下に書き込みます。 。 2進数では、除数で1を乗算すると除数が得られるため、このステップをスキップできます。- 配当の下に除数を書きます。この例では、配当の最初の3桁(101)の下に11を並べます。
- 101-11を計算して残りを取得します10。
-
分割が完了するまで操作を繰り返します。 除算器の次の数字を残りの数字と一緒に100にします。11<100なので、商の次の数字として1を書き込みます。前と同じように分割を続けます。- 数字100の下に11を書き込み、減算して1を取得します。
- 配当の最後の桁を戻し、11を取得します。
- 11 = 11の場合、最終商(結果)として1を書き込みます。
- 休息はありません。分割は完了です。答えは 00111 または単に111。
-
必要に応じてコンマを追加します。 結果が整数でない場合があります。最後の数字を追加しても余りがある場合は、コンマに続いてゼロ( "、0")を配当に、コンマ( "、")を商に追加して、別の数値をロールバックして続行できます。目的の精度に達するまでプロセスを繰り返し、結果を切り上げます。紙の上では、最後の0を削除して結果を四捨五入するか、最後の桁が1の場合はドロップして、新しい最後の桁に1を追加できます。プログラミングでは、標準アルゴリズムのいずれかに従って、2進数と10進数の間で変換する際の間違いを避けるために丸めます。- 2進数の除算は、多くの場合、10進数の書き込みよりも一連の小数部の繰り返しで終わります。
- これは、10進法で使用される古典的なコンマに相当する「コンマバイナリ」という用語の使用を指します。
方法2双方向の補足方法を使用する
-
基本的な概念を理解します。 除算を(基底に関係なく)解決する1つの方法は、負数を得る前にできる回数をカウントしながら、配当から除数を減算し、残りを減算することです。除算26÷7を解決するためのベース10の例を次に示します。- 26-7 = 19(減算 1 回)
- 19 - 7 = 12 (2),
- 12 - 7 = 5 (3),
- 5-7 = -2。負の数を取得するため、戻る必要があります。答えは 3 残りは5です。このメソッドは、結果の整数以外の部分を計算しないことに注意してください。
-
2つのサプリメントで減算することを学びます。 上記の方法を2進数で簡単に使用できる場合は、より効率的な方法を使用して減算できるため、コンピューターをプログラミングして2進数を除算する時間を節約できます。これは、2つの補数による減算の方法です。 111-011を計算するための基本原則を次に示します(2つの数値が同じ長さであることを確認してください)。- 1から各桁を減算して、2番目の項の補数を見つけます。これは2進数で簡単に行えます。 1を0に、0を1に置き換えるだけで十分です。この例では、011は100になります。
- 結果に1を追加します。100+ 1 =101。これは双方向の補足方法と呼ばれ、加算として減算を実行するために使用できます。結局、それは本質的に正の数を引く代わりに負の数を足したようなものです。
- 最初の数字で結果を追加します。加算を記述して解決します:111 + 101 = 1,100。
- 拘束を取り外します。回答の最初の数を広げて、最終結果を取得します。 1,100→ 100.
-
前の2つの概念を組み合わせます。 長い除算を解くための減算方法と、減算を解くための双方向の補足方法がわかったので、以下の手順に従って、これら2つの方法を組み合わせて除算の問題を解決できます。必要に応じて、続行する前に自分で検索してみてください。 -
2つのサプリメントを追加して、配当から除数を引きます。 たとえば、分割100 011÷000 101を考えます。最初のステップは、操作100 011-000 101を解決することです。これは、2つの補数の方法のおかげでさらに変換されます。- 000 101 = 111 010 + 1 = 111 011の2つの補数
- 100 011 + 111 011 = 1 011 110
- リテーナーを取り外す→011 110
-
商に1を加えます。 現時点では、プログラムについて説明します。ここで、商を1から1に増やします。別のジョブと混同しないように、用紙の隅のどこかに書き込みます。最初の減算を行うことができたので、商は 1. -
残りから除数を減算して、操作を繰り返します。 最後の計算の結果は、除数が1回「配置」された後の余りです。毎回2つの仕切りサプリメントを追加し続け、保持具を取り外します。毎回商に1を加算し、除数以下の剰余が得られるまで繰り返します。- 011 110 + 111 011 = 1011001→011 001(商 1+1=10)
- 011 001 + 111 011 = 1010 100→010 100(商 10+1=11)
- 010 100 + 111 011 = 1 001 111 → 001 111 (11+1=100)
- 001 111 + 111 011 = 1 001 010 → 001 010 (100+1=101)
- 001 010 + 111 011 = 10 000 101 → 0 000 101 (101+1=110)
- 0 000 101 + 111 011 = 1 000 000 → 000 000 (110+1=111)
- 0は101よりも小さいため、そこで停止します。商 111 除算の結果です。残りは減算の最終結果であり、したがって0に等しくなります(したがって、何も残りません)。