著者:
Helen Garcia
作成日:
16 4月 2021
更新日:
4 5月 2024
コンテンツ
2進数の除算の問題は、手動または簡単なコンピュータープログラムを使用して解決できます。あるいは、繰り返し減算の補完的な方法は、慣れていないかもしれないがプログラミングではほとんど使用されていないアプローチを提供します。プログラミング言語は通常、より効率的な推定アルゴリズムを使用しますが、このトピックについてはこの記事では取り上げません。
ステップ
方法1/2:筆算を使用する
- 手作業で小数除算を行う方法を確認する. しばらく手作業で小数除算(基数10)を行っていない場合は、例172÷4を使用して基本を確認してください。それ以外の場合は、次の手順に進み、2進数について同じプロセスを学習します。
- THE 配当 で割る 仕切り、結果は 商.
- 除数を被除数の最初の桁と比較します。大きい場合は、除数が最小になるまで被除数に桁を追加し続けます。たとえば、172÷4を計算するには、4と1を比較します。 4> 1であることに注意してから、4と17を比較してください。
- 比較で使用しているかのように、配当の最後の桁の上に商の最初の桁を書き込みます。 4と17を比較するとき、4は17の数に4回適合することに注意してください。したがって、7より上の最初の商数として4を記述します。
- 乗算と減算を行って残りを見つけます。商の桁に除数を掛けます。この場合、4 x 4 = 16です。17の下に16を書き込み、17-16を引いて残りの1を求めます。
- 繰り返す。ここでも、除数4を次の桁1と比較します。4> 1であることに注意してください。次に、被除数の次の桁を「下げ」て、4を12と比較します。次の商番号として3を書きます。答えは43です。
-
2進数を手で割る問題を設定します。 例10101÷11を使用してみましょう。10101を被除数、11を除数として除算問題を設定します。商を書くために上にスペースを残し、計算を行うために下にスペースを残してください。 - 除数を被除数の最初の桁と比較します。 これは、10進数を使用した手動の除算問題と同じように機能しますが、実際には2進数を使用した方が簡単です。 2つのうち:除数で数値を除算することができないか(0)、除数を1回使用できます(1):
- 11> 1であるため、11は1に「適合」しません。商の最初の桁(被除数の最初の桁の上)として0を書き込みます。
-
次の桁までスクロールし、番号1が得られるまで繰り返します。 使用例については、次の手順を参照してください。- 配当の次の桁を下げます。 11> 10。商に0を書き込みます。
- 次の桁を下げます。 11 <101。商に1を書き込みます。
- 残りを見つけます。 10進数による除算と同様に、新しく見つかった桁(1)に除数(11)を掛けて、新しく計算された桁に合わせた被除数の下に結果を書き込む必要があります。バイナリでは、1 x除数が常に除数に等しいため、ショートカットを使用できます。
- 被除数の下に除数を書きます。この場合、配当の最初の3桁(101)の下に配置された11を書き込みます。
- 101-11を計算して、残りを取得します。10。ヘルプが必要な場合は、2進数を減算する方法を参照してください。
-
問題が終了するまで繰り返します。 除数の次の桁を残りの横に下げて、数値100を形成します。11<100として、数値1を商の次の桁として書き込みます。以前と同じ方法で問題の計算を続けます。- 100の下に11を書き込み、減算して1を取得します。
- 配当の次の桁を下げます。
- 11 = 11なので、商(答え)の最後の桁として1を書きます。
- 休むことはないので、問題は完了です。答えは 00111、または単に111。
- 必要に応じてドットを使用してください。 時々、結果は完全ではありません。最後の桁を使用しても余りがある場合は、配当に「.0」と「。」を追加します。商に変換するので、別の桁をダウンロードして続行できます。目的の特異性に達するまで繰り返し、答えを丸めます。紙の上では、最後の0をカットすることで四捨五入できます。または、最後の桁が1の場合は、ダウンロードして最後の桁に1を追加します。プログラミングでは、標準の丸めアルゴリズムの1つに従って、2進数を10進数に変換するときのエラーを回避します。
- 一般に、2進数の除算の問題は、小数部よりも小数部の繰り返しで終わります。
- 「小数点記号」は10進法でのみ使用されるため、これは「小数点」と呼ばれ、任意の基数に適用されます。
方法2/2:補完的な方法の使用
- 基本的な概念を理解します。 除算の問題を解決する1つの方法は、任意の基準で、被除数から除数を減算し続け、残りの後に、負の数を取得する前にこれが行われた回数を記録することです。 10進数の例を参照してください:26÷7:
- 26-7 = 19(1回減算)
- 19 - 7 = 12 (2)
- 12 - 7 = 5 (3)
- 5-7 = -2。負の数を取得したら、1ステップ戻ります。答えは3で、余りは5です。この方法では、答えの不健康な部分は計算されないことに注意してください。
- アドオンで減算することを学びます。 上記の方法は2進数で簡単に使用できますが、コンピューターをプログラミングして除算する際の時間を節約する、より効率的な方法があります。これは補数による減算の方法です。 111-011を計算するときの基本を参照してください(両方の数値は同じ桁数でなければなりません):
- 1から各桁を引いて、第2項の1の補数を見つけます。これは、バイナリシステムで各1を0に、各0を1に変更することで簡単に実行できます。使用例では、011は100になります。
- 結果に1を加算します:100 + 1 = 101。これは2の補数であり、加算の問題として減算が可能です。その結果、プロセスの最後に正の数を引くのではなく、負の数を足したかのようになります。
- 結果を最初の項に追加します。足し算の問題を書いて解決します:111 + 101 = 1100。
- 余分な数字を破棄します。回答の最初の桁を破棄して、最終結果を取得します。 1100→ 100.
- 上記の2つの概念を組み合わせます。 これで、除算の問題を計算するための減算方法と、減算の問題を解決するための2つの補完的な方法を学習しました。それらを新しい方法で組み合わせて除算の問題を計算することが可能であることを知ってください。以下の手順でそれを行う方法を参照してください。必要に応じて、続行する前に自分で理解してください。
- 2の補数を加算して、被除数から除数を引きます。 問題100011÷000101を調べてみましょう。2の補数法を使用する最初のステップは、減算を加算の問題にすることです。
- 000101 = 111010 + 1 = 111011の2つの補数
- 100011 + 111011 = 1011110
- 余分な数字を破棄→011110。
- 商に1を加えます。 コンピュータプログラムでは、これは商が1つ増えるポイントです。紙に、請求書と混同しないようにどこかにメモをとってください。減算は1回正常に実行されました。したがって、これまでのところ、商は1です。
- 残りから除数を引くことを繰り返します。 最後の計算の結果は、除数を1回使用した後の残りの除数です。毎回除数に2の補数を追加し続け、余分な桁を破棄します。毎回商に1を加算し、除数以下の余りが得られるまでこのプロセスを繰り返します。
- 011110 + 111011 = 1011001→011001(quotient1 + 1 = 10)
- 011001 + 111011 = 1010100→010100(商10 + 1 = 11)
- 010100 + 111011 = 1001111 → 001111 (11+1=100)
- 001111 + 111011 = 1001010 → 001010 (100+1=101)
- 001010 + 111011 = 10000101 → 0000101 (101+1=110)
- 0000101 + 111011 = 1000000 → 000000 (110+1=111)
- 0は101未満なので、ここで停止できます。商 111 除算の問題に対する答えです。残りは減算問題への最終的な答えです。この場合、0(余りなし)。
チップ
- 2減算補数法は、桁数が異なる数値では機能しません。ただし、これを修正するには、桁数の少ない数値にゼロを追加します。
- 答えが正か負かを定義する必要がある場合を除いて、計算の前に符号付き2進数の符号付き桁を無視します。
- 一連のマシン命令に対してバイナリ計算を行う前に、数値スタックからアイテムをインクリメント、減少、または削除するための命令を検討する必要があります。