- 締切済み
2進数 計算
2進数 計算 2進数で表記される数 a=00110110(2)、b=00001110(2)について a-bを求めて2進数で表記しなさい。という問題なんですが この問題の答えを見ると(bの補数)=11110001(2)+00000001(2)=1110010(2) 従ってa-b=00110110(2)+1110010(2)=00101000(2) 00110110 +11110010 100101000 っていうう風に出していたのですがなんでこういう解き方になるんでしょうか? 普通に引き算でa-bを00110110(2)から00001110(2)を引きんじゃないんですかね?
- hukushu
- お礼率0% (0/28)
- その他([技術者向] コンピューター)
- 回答数6
- ありがとう数0
- みんなの回答 (6)
- 専門家の回答
みんなの回答
私も、「2進数の」、ふつうの引き算で、答が合いました。 ★ ☆ 0 2 a = 0 0 1 1 0 1 1 0 -) b = 0 0 0 0 1 1 1 0 ----------------- 0 0 1 0 1 0 0 0 ↑ ↑ ↑☆: 2-1=1 ★:0-0=0 気になる点は、☆と★の部分です。 たぶん、お解りになってられると思いますが、念のため、 まず、下から4ケタ目の「8の位」の引き算は、 0から1は引けないので、下から5桁目の「16の位」の「1」を借りてきて、「2」にします。 それで、☆の計算:2-1=1で、答の下から(右から)4桁目は「1」になります。 次に、aの下から5桁目は、☆の計算で、「1」を貸したので、「0」になります。 それで、★の計算:0-0=0で、答の下から(右から)5桁目は「0」となります。 あとは、問題は無いですね? 下から1桁目は、0-0で0 下から2桁目は、1-1で0 下から3桁目は、1-1で0 下から6桁目は、1-0で1 下から7桁目は、0-0で0 下から8桁目は、0-0で0 と計算しました。 ちなみに、いったん10進数で計算して、出た答えを2進数に直して答を出すと、 aは、32の位が1,16の位が1,4の位が1、2の位が1で他の位は0だから、 a(10)=32+16+4+2=54 bは、8の位が1、4の位が1、2の位が1で、他の位は0だから、 b(10)=8+4+2=14 a(10)-b(10)=54-14=40(10) で、 左から2番目の位は、64の位 左から1番目の位は、128の位だから、 40は満たすことが出来ず、どちらも「0」「0」 下から6桁目は32の位なので、40から32が1つ入って「1」 40-32=8 残り「8」なので、 8では16の位を満たすことが出来ないので、 下から5桁目は「0」のままで、スルーして、 下から4桁目は8の位なので、残っていた「8」を全部入れて「1」 で、残りの4の位、2の位、1の位には、もう入れる数が無いので、全て0になり、 結局、答は < 0 0 1 0 1 0 0 0 > と、一度、10進数に直しても、答は同じでした。 私は中学受験の算数の講師ですから、補数とかは解っていません・・・汗 以上の、私の解答で、解りにくいところがあれば、補足欄なりお礼欄なりで、お知らせ下さい。 ちゃんと画像を添付して説明させて頂きますので・・・(;^_^A
- kngj1740
- ベストアンサー率18% (197/1052)
引き算回路をハードウェアとして持っている計算機は皆無と言って良いです。で、常識的な答えは補数を足すとなります。純粋な数学の問題ではなくて計算機がらみの問題ですから。ちなみに補数を求めるには各ビットの01を反転させ、それに1を足します。これはビットを反転する回路と足し算回路だけで実現できます。引き算回路を別に作るよりはるかに簡単になります。(もちろんその分、制御回路は複雑になります)。
- kmee
- ベストアンサー率55% (1857/3366)
> a-bを求めて2進数で表記しなさい だけだったら > 普通に引き算 でまったく問題ありません。 繰り下げげちょっと面倒なときがある、というくらいです。 倫理回路まで考えたら、確かに bの2の補数表現b' を使って a-b → a + b' とするのが簡単になりますが 何も条件も無しに補数表現を使うのはちょっと違うと思います。
2進数計算処理では直接『減算処理』は出来ません。 出来るのは『加算』のみなので『減算』の場合 は補数に変換し、上位桁を無視する事で行ってます。 最上位が『1』は補数計算のフラグ これが無いと『加算』した事に成る。 ちなみに乗算は『加算』を繰り返す。 3X2--->3+3
- maiko0318
- ベストアンサー率21% (1483/6970)
10進数で考えましょう。 2桁演算において 70-40の場合。 70 +60 --- 130 百の位は切り捨て、30となる。 引き算を足し算で演算できれば引き算の回路が要らなくなるということです。 小学校の算数で足し算はできたけど、引き算でつまずいた人がいたんじゃないかな。
- mojya2012
- ベストアンサー率42% (64/150)
2進数を論理回路(ANDとかORとかのアレ)で 演算させるには、補数を使えば足し算の回路だけで 引き算もできちゃうぞって事だと思います。 それが演算の高速化や回路のシンプルさに繋がっていきます。 例えば、自分でリレースイッチなどの電子パーツで 足し算と引き算が出来る機械を作るイメージをしてみてください。 出来れば足し算機能の機械と引き算機能の機械を別々に作るよりも、 足し算機能にちょっと工夫を加えることで 引き算も出来てしまうほうがいいと思いませんか? うろおぼえなので、自分の解釈が間違ってる部分もあるかもしれませんが、 大体、こんなところだと思います。
関連するQ&A
- 2進数の足し算について
CPUは引き算を行うことができず、2の補数を用いて引き算を足し算として考えれると知りました。 そこで8bitの最上位桁を符号とした7bitの引き算-24+(-8)を計算してみたのですが 24(10進数)→0011000(2進数)→1101000(2の補数) 8(10進数)→0001000(2進数)→1111000(2の補数) 符号 7654321←bit 1 1101000 +1 1111000 X 1100000 となり、1100000の2の補数をとると 0100000(2進)→32(10進数)で答えを求められました。 そこでお聞きしたいのですが、値を足したとき(↑の例だと1100000)が求められたときにどういった条件だと1100000の2の補数をとる必要があるのでしょうか? ↑の例だとXがどの条件のときでしょうか? 質問が長くなってしまいましたがよろしくお願いします。
- ベストアンサー
- 数学・算数
- 2進数の計算について
ITパスポートを受けようと思っているのですが、テクノロジ系の初歩的な部分と思われるところでつまずいてしまっています。 2進数同士の引き算、足し算がの繰上げ繰り下げが分かりません; どなたか分かり易く解説お願いします。 因みに、こんな問題です。 「2進数10110を3倍にしたものはどれか。」(選択肢が4つあります) 10110+10110+10110=答え なのは分かっているのですが、普通の計算と違うので何度テキストを読み返しても分かりません; お願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- 2進数の計算について
01000111(2)-01101010(2)の計算を補数を用いて求める方法は 01101010を10010101に変更し1を加えて10010110に変更し 01000111 +10010110 =11011101(2)で正しいでしょうか? また答えを10進数に変更する方法を教えてください。
- 締切済み
- 数学・算数
- コンピュータ系の勉強をスクールに通わず、独学で勉強しています。理解するまで時間がかかってしまいます。お答お願いします。
質問が少し多くなりますが、よろしくお願いします。 (1)問題、2進数の計算をしなさい。引き算は補数を使ってやること。 1110101-100111= (2)問題、4ビットで計算しなさい。引き算は補数を使ってやること。 0011-0110= 1110+1101= 1110+0111= (3)問題、次の16進数は2進数ではどのように表せますか。また、10進数ではどうですか。 (1)20 → (2)4C → (3)100 → (4)7F → (4)問題、球が100個あります。(球の色は全て赤色です。) この中から一つ取り出して球の色を教えてもらった場合、何ビ ットの情報量を得たか答えなさい。(教えてもらう方は球の色 が赤色しかないことは知っている。)計算式をたてて答えなさ い。 (1)番の問題ですが、他の足し算や掛け算の問題は分かったのですが、引き算がどうしても分からないのです。 (2)番の問題ですが、(1)番にも出てきましたが補数の意味が分かりませ ん。 (3)番の問題では、16進数と2進数、16進数と10進数の対応表ですぐ答えはでてくるのですが、計算方法が分からないのです。 (4)番の問題は、最初から球の色は知っているから情報量はゼロにな ると思うのですが、計算式をたてて答えなさいとあるので・・・ 長くなり本当にすいません。答えだけではなく計算式も書いて頂けたら有難いことです。文章が下手ですいませんが、宜しくお願いします。
- 締切済み
- その他(趣味・娯楽・エンターテイメント)
- やっと就職できたのですが、課題がありましてすごく困っています。お答宜しくお願いします。
質問が少し多くなりますが、よろしくお願いします。 (1)問題、2進数の計算をしなさい。引き算は補数を使ってやること。 1110101-100111= (2)問題、4ビットで計算しなさい。引き算は補数を使ってやること。 0011-0110= 1110+1101= 1110+0111= (3)問題、次の16進数は2進数ではどのように表せますか。また、10進数ではどうですか。 (1)20 → (2)4C → (3)100 → (4)7F → (4)問題、球が100個あります。(球の色は全て赤色です。) この中から一つ取り出して球の色を教えてもらった場合、何ビ ットの情報量を得たか答えなさい。(教えてもらう方は球の色 が赤色しかないことは知っている。)計算式をたてて答えなさ い。 (1)番の問題ですが、他の足し算や掛け算の問題は分かったのですが、引き算がどうしても分からないのです。 (2)番の問題ですが、(1)番にも出てきましたが補数の意味が分かりませ ん。 (3)番の問題では、16進数と2進数、16進数と10進数の対応表ですぐ答えはでてくるのですが、計算方法が分からないのです。 (4)番の問題は、最初から球の色は知っているから情報量はゼロにな ると思うのですが、計算式をたてて答えなさいとあるので・・・ 長くなり本当にすいません。答えだけではなく計算式も書いて頂けたら有難いことです。文章が下手ですいませんが、宜しくお願いします。
- 締切済み
- その他(社会)
- 計算の順序 a×b÷c
小学生の算数で, たし算,ひき算は,かけ算,わり算より先 たし算と,ひき算が,又は,かけ算,わり算が, 複数ある時は,普通,左からと習います。 しかし, たし算だけ, かけ算だけなら,どこからでも計算できます。 a×b÷c は,b÷cを先に計算することは,できますか? いくつか,問題を作って解いてみましたが, a×bを先に計算した時と,答えが同じになりました。 よろしくお願いします。
- 締切済み
- 数学・算数
- 教材と答えが合いません;
「-20570dを16ビットの2進数の2の補数表現で表しなさい。」 という問題があります。 何回計算しても 0101_0000_0101_1010b となるのですが、教材の答えでは 1010_1111_1010_0110b となっています。 この答えって2進数を求めて終わってしまっていて、「2の補数表現」にする部分の計算が行われていない気がするんですが… 分かる方お願いします。
- ベストアンサー
- その他(インターネット・Webサービス)
- 10進数からの変換なのですが・・・
どうしてもこの598に対する問題の答えが欲しいので、 分かる方、教えてください! お願いします!! 10進数598を2進数に変換すると、((1))になる。 1に対する補数は((2))で2に対する補数は((3))である。 また8進数は((4))で、16進数は((5))である。
- ベストアンサー
- その他(プログラミング・開発)