解決済み
応用情報処理技術者試験の四則演算について 二進数の足し引きが苦手です。 たとえば1101 - 110がどうして111となるのか理解ができません。 私がやると001になってしまいます。上記のロジックのどこがおかしいかご指摘をお願いいたします。
62閲覧
>私がやると001になってしまいます。 >上記のロジックのどこがおかしいかご指摘をお願いいたします。 「私が〇〇〇のように計算したら001になった」という経緯が書かれていないので、計算ロジックのどこがおかしいか指摘できません。 >二進数の足し引きが苦手です。 >たとえば1101 - 110がどうして111となるのか 何が「苦手」なのかは、たぶん「1桁目は1-0だから1」 「2桁目は0-1なので引けないから・・・」の・・・部分だと思います。 計算方法は次の2通り。 計算方法a.はややこしいので、計算方法b.を試してはどうか。 【計算方法a】.上位桁の1を下位桁にもらう 「1101 - 110の1桁目は1-0=1」。結果は1。 「2桁目は0-1で引けないから、1101の3桁目の1を2桁目にもらって1+1にし、(1+1)-1の引き算をする」。結果は1。 なお、1101の3桁目は0になる。 3桁目の引き算は、計算済みの桁をXで示した式で書くと 「10XXー1XXの3桁目は0-1でへ引けないから、10XXの4桁目の1を3桁目にもらって1+1にし、(1+1)-1の引き算をする」。結果は1。 結果を並べると、引き算の答えは111。 【計算方法b】.引かれる数を計算しやすいように分解してから計算する 引かれる数1101を分解すると「1000+100+1」。 さらに分解すると「1101=1+111+1+11+1」。 これを使って計算する。 1101 - 110 =1000+100+1ー100ー10 第2項と第4項が打ち消し合って =1000+1ー10 第1項を分解して =111+1+1-10 =111+10-10 =111 引き算の答えは111。
ありがとう:1
この解説がわかりやすいと思います。 2進数の加算と減算のやり方|足し算と引き算にチャレンジ! https://prau-ict.com/digitalize/addition-subtraction-binary/
ありがとう:1
二進数の計算で誤りが生じる原因は、繰り下がりの処理を間違えている可能性があります。例えば、1101(十進数で13)から110(十進数で6)を引く場合、正しく繰り下がりを行う必要があります。 1. 1101 -110 ----- 0111 最下位から順に引いていき、必要な場合は左の桁から1を借ります。この場合、最初の1-0は1、次の0-1は繰り下がりで1を借りて10-1で1、次の1-1は0、最上位の1-0は1となります。結果は0111(十進数で7)です。 あなたが001と計算してしまう場合、繰り下がりの処理を間違えているか、桁の位置を間違えている可能性があります。再度、繰り下がりの手順を確認し、正確に計算してみてください。 ※この回答は生成AIで作成したものであり、最新の情報や完全な正確性等を保証するものではありません。
< 質問に関する求人 >
情報処理技術(東京都)この条件の求人をもっと見る
求人の検索結果を見る
< いつもと違うしごとも見てみませんか? >
覆面調査に関する求人(東京都)この条件の求人をもっと見る