• 締切済み

2進数の計算について

次の計算について教えてください。(答えは8ビット2進数でお願いします) (1)00010110×00000110 (2)11101011÷00111011 よろしくお願いします。

noname#226958
noname#226958

みんなの回答

  • Tann3
  • ベストアンサー率51% (708/1381)
回答No.2

 少し詳しく説明してみます。  掛け算は左シフトで計算できます。 (1)は、第2項(割る数)が「110」ですから、第1項(割られる数)を「左に2桁シフト」したものと「左に1桁シフト」したものの「加算」です。  つまり、「N * 110 = (N * 100) + (N * 010)」と考え、「*100」は「左に2桁シフト」、「*10」は「左に1桁シフト」すればよいのです。従って、   「0101 1000」+「0010 1100」=「1000 0100」  割り算は、ちょっと厄介です。  第2項(割る数)を、何桁左にシフトすると「引いて第1項(割られる数)の最高桁の1をなくせるか」を考え、このシフトした数を第1項から差し引きます。(差し引いた結果は正数であること)  これを、適当な桁まで計算して残りを「余り」にするか、余りがなくなるまで繰り返します。  シフトした桁数の桁を「1」、シフトしても差し引きできない桁数を「0」としたものが、割り算の商になります。縦書きの筆算をする原理、上記の「掛け算」の逆をやっているということです。 (2)でやってみましょう。  第1項が「1110 1011」、第2項が「11 1011」なので、左に2桁シフトしたいところですが、そうすると結果がマイナスになってしまいますので、引き算できるためには左に1桁しかシフトできません。  そうすると、差し引きすると、    「1110 1011」-「111 0110」=「0111 0101」  今度は「0桁シフト」した第2項が引けるので、    「0111 0101」-「11 1011」=「0011 1010」  小数点以下まで計算すると、右に1桁シフトした「1 1101.1」を差し引いて、    「0011 1010」-「1 1101.1」=「1 1100.1」  次の右に2桁シフトした「1110.11」を差し引いて    「1 1100.1」-「1110.11」=「1101.11」  さらに右に3桁シフトした「111.011」を差し引いて    「1101.11」-「111.011」=「110.011」  と、まだまだ続きます・・・。  ということで、「左に1桁シフト(=2^1)」「0桁シフト(=2^0)」「右に1桁シフト(=2^[-1])」「右に2桁シフト(=2^[-2])」「3桁シフト(=2^[-3])」・・・と続くので、答は   「11.111・・・」 ということになります。「シフトしても差し引けない」桁があれば、その桁が「0」になるのですが、今回の計算ではできてきませんでした。「左に2桁以上(=2^2以上)」がないので、2^2以上の桁が「0」ということです。  2進8桁までで書けば「0000 0011.111・・・」ということです。  答は「8ビット2進数」ということなので、   「0000 0011 余り 0011 1010」 となります。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

1000100 11

関連するQ&A

  • 2進数の計算

    127 + (-3) の計算ですが 普通に10進数で計算してから124を2進数に直しても良いのですが、 敢えて2進数での計算方法を教えていただけませんでしょうか。 127は1111111ですが -3は8ビットで表さなければならないのでしょうか? その場合、足したり引いたりしても良いのでしょうか?

  • 2進数と10進数について

    高校物理(1)Aのビットパターンの計算に出てくる2進数と10進数の計算でどのような式からその答えになるかがわかりません。2進数と10進数をくわしく教えて下さいおねがいします。

  • 2進数の計算について

    2進数の計算について分からない問題があるのでお願いします。 (1) 2進5ビットの数値で,01001をバイアス表示とみるとき,10進数ではいくつか (2) 10進数の4を2進5ビットで表す.バイアス表示を用いると,どのように表されるか. できるだけ詳しい回答くれるとありがたいです。

  • 2進数の計算

    2進数の計算 10進数の0.3125を2進数に直しなさい。 答え:0.0101 これの計算方法が全く分からないのですが、どなたかご教授願います。

  • 負の2進数の表示がわかりません

    Q1:負の数(例えば10進数の[-2])を2進数,4ビットで表すには, 1010(MSDの[1]は[-]を表して,後半の3桁は[2])か 1110([0001]の2の補数) どちらが正しいのですか?(学校ではどちらも習いました) またQ2のような計算をするには補数による表示でないとなりませんか?(絶対値に符号をつけるだけだと計算が合いません) Q2:4ビットで表された2進数の計算で    0101-0010=0101+(1110)=10011 となり,答えが5ビットになってしまいます.下4桁で考えると答えが合っている気がします.これで合っていますか?

  • ビットの計算方法の質問です。お願いします。

    大学での問題で、 (問題)4ビットで次の計算をしなさい。また、これらがどのような計算か10進数    で示してください。 (1)0011-0110= (2)1110-1101= (3)1110-0111= という問題を解かなければならないのですが、どうしても解けません。 提出日が近いため時間がなく、本当に困っています。 解説及びお答えを教えて頂けないでしょうか。 宜しくお願いします。

  • 2の補数表現2進数が表す10進数は?、

    次の2の補数表現の2進数が表す10進数はいくらか? 1111 1111 1111 1111 1111 1111 1111 1111 という問題があるのですが、 これを解くと、まず、上のビット列は2の補数表現なのだから、これはマイナスですよね?そして、次にビット列を2の補数を求めるやり方でやると元の数がわかりますよね(この辺がいまいち解っていない)? という事は全ビットを0にして、最下位ビットに1を 足せばいいから0000 0000 0000 0000 0000 0000 0000 0000 + 1 =0000 0000 0000 0000 0000 0000 0000 0001 となります。10進数だと 1を表すから答えはー1という事になるのでしょうか?お願いします。

  • 2進数の掛け算ができません

    初めまして。2進数の掛け算で困っています。よろしくお願いします。 10進数で2*(-3)=-6ですが、これを3bitの2進数で行ないたいと思います。 すると、010*101(2の補数)=01010となります。 -6は10(2の補数)となるはずですが答えが異なります。 符号拡張というものがあるということで、次はそれで行なってみます。 010*1101(符号を拡張した2の補数)=011010となります。 答えが異なります。ますますわけがわかりません。 ---------- 次に10進数で(-1)*(-1)=1ですが、これを2bitの2進数で行ないたいと思います。 すると、11(2の補数)*11(2の補数)=1001となります。 1は1となるはずですが答えが異なります。 符号拡張というものがあるということで、次はそれで行なってみます。 111(符号を拡張した2の補数)*111(符号を拡張した2の補数)=110001となります。 答えが異なります。ますますわけがわかりません。 ---------- 話は変わるのですが、 Nビット×Mビット=N×Mビットになる とのことです。これも理解できません。 どなたかご教授をお願いしますm(__)m

  • 2進数の計算について

    01000111(2)-01101010(2)の計算を補数を用いて求める方法は 01101010を10010101に変更し1を加えて10010110に変更し  01000111 +10010110 =11011101(2)で正しいでしょうか? また答えを10進数に変更する方法を教えてください。

  • 留数の計算です

    次の留数を求めよという問題がありまして、 f(z)=1/({(z-a)^m}{(z-b)^n}) (z=aのときの留数) これを計算していくと答えが ((-1)^(m-1)(n+m-2)!)/((m-1)!(n-1)!(a-b)^(n+m-1)) となるそうなのですが、計算していってもどうして分母に(n-1)!が出てくるのかが わかりません。どなたかわかりやすく教えてくださいませんでしょうか?