ママのスキンケアのお悩みにおすすめアイテム

学校で「アセンブラ言語」について学び始めました。

「2進数の減算」が分かりません。

・減算は負の数の加算でおこなう。
・負の数は2の補数であらわす。
・補数を導き出すには「ビット反転」と「+1」する。
この3つのルールのことは何となくわかります。

では、
 0110 1001
-0010 1100
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  の計算の仕方を教えていただきたいです。







  0110 1001
-0010 1100
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  1101 0011  (ビット反転)
+1101 0100  (+1する)
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 

自分でやってみましたが、この先がわかりません。
(つまり負の数を加算する部分が分からないです)

この先の答えと、計算方法を教えてください。
よろしくおねがいします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

アセンブラに限らずコンピューターでの減算処理の内容ですね?



結論だけ先に書きますと、
 01101001   (十進数だと105)
-00101100   (十進数だと44)
------------------


 01101001
+11010100  (マイナス部分を反転して+1)
------------------


=12111101  (上下を足してみる)



=00111101  (2進数なので2は上の位に+1する。十進数では61)

となります。
原理自体は十進数の計算方法と変わりません。単に2で次の位に移動するだけです。

 44556677
+23456789
------------------

上記の場合は各位を足した際に10を超えたら次の位に移動させますよね。二進数ではそれが2になるだけです。


そもそも一番大事なことは、「コンピューターは覚えられないことは忘れる」という特性を応用しているということですね。
その部分を押さえていれば授業の理解はぐっと早くなるかと思います。
    • good
    • 0
この回答へのお礼

よく分かりました!!
ありがとうございます。頑張って勉強します♪

お礼日時:2007/10/27 00:23

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q2進数の減算の解き方

2進数の減算を解いているのですが、けた借りの方法がわからず、答えまでたどり着く事ができません。
問1 (1)01010011
   (2)00011110
(1) - (2) = 00110101
問2 (1)10011001
   (2)00100101
(1) - (2) = 01110100 
教えてください!!よろしくお願いしますm(__)m

Aベストアンサー

10進の積み算で
減算するか?

減数を2の補数に直して、2の補数を加算してもいいですね。

問1の場合を例にとれば
(2)00011110→11100001+1=11100010(2の補数)
01010011
11100010(+
----------
00110101 ← 答
(最上位桁からの桁あがりは無視します。)

問2は上記に習ってやって下さい。

Q2進数の割り算が分かりません・・・。

2進数の割り算が分かりません・・・。
授業でいきなり出てきて大変に戸惑っています。
10010➗11(2進数)
の解き方を教えてください。
よろしくお願いします・・・!

Aベストアンサー

2進数の場合の割り算は引く事が出来るか?をフラグを立てていく感じになります。

Q2進数の除算について

タイトルどおり、2進数の除算についてわからいので質問をします。
(1)割り切る方法と(2)余りを出す回答があるようなのですが、どこのサイトを見てもいまひとつ理解ができなくて困っています。何か具体的な例を挙げていただきたいと思います。

それに加えて、前者の割り切る方法の結果から分かること(法則性)も知りたいのですが、両者について分かる方がいらっしゃれば、どうかお力添えをお願いします。

Aベストアンサー

> また追加で質問なのですが、先の100001÷110=101…11で
> (1)余りを出す
> (2)割り切る という二つの計算方法があるらしく、これは(1)の計算方法なのですが、(2)の割り切るとはいったいどのような方法なのでしょうか?

多分ですが、「小数を使って割りきれ」ということだと思います。

       101
   ―――――――
110)100001
     110
    ――――
      100
        0
      ―――
      1001
       110
      ――――
        11

↓(1/2の位に進む)

       101
   ―――――――――
110)100001.0
     110
    ――――
      100
        0
      ―――
      1001
       110
      ――――
        11 0

↓(商の1/2の位の数は1)

       101.1
   ―――――――――
110)100001.0
     110
    ――――
      100
        0
      ―――
      1001
       110
      ――――
        11 0
        11 0
        ――――
           0

商は101.1

> また、その割り切った結果から何が分かるのでしょうか?

分かりません。

10進数ではどんな有限小数も、(2^n)(5^m)で割りきれます(n, mは0以上の整数)。
逆に(2^n)(5^m)で表せない数(例えば6)で割ると、割り切れない場合があります。

対して2進数では、どんな有限小数も(2^n)で割りきれます(nは0以上の整数)。
逆に(2^n)で表せない数(例えば10)で割ると、割り切れない場合があります。

そういったわり算に関する話がありますが、
先ほどのわり算1個だけからそんな結論を得るのは不可能だと思います。

> (1)2進数の補数計算の方法に関して4つまとめる

(1)の「4つ」とは何が4つなのでしょうか?
「たし算、ひき算、かけ算、わり算の4つの計算方法についてまとめなさい」ということでしょうか?
だとしたら、それぞれの計算方法について説明すれば良いと思います。
小学校の算数の教科書には、10進数のたし算やひき算や
かけ算やわり算のやり方が書いてありますよね。
あれを2進数版に書き直すような感じでいいのではないでしょうか?

まず1桁のたし算から始めて、その後繰り上がりの概念を利用して2桁以上のたし算を説明し、
次にたし算の筆算のやり方を……といった感じでやれば良いと思います。

ここの環境だと筆算の繰り上がりや繰り下がり等が表記できないので、
申し訳ないですが、計算方法のまとめを書くのは無理です。

> (2)2進数の1の補数が,ビット毎の0・1反転で得られることを証明

1の補数の定義を知らないので、大したアドバイスはできません。
とりあえず、思いついたことを書いておきます。

1桁の2進数aをビット反転させると、(1 - a)になります。

a = 0の時、(1 - a) = 1
a = 1の時、(1 - a) = 0

次に2桁以上の2進数のビット反転を考えます。
ある2進数Xのn桁目の数をx_nと表現します(x_n = 0, 1)。
この時、Xをビット反転させた数のn桁目の数は(1 - x_n)で表せます。
これは先ほどの、「1桁の2進数aをビット反転させると(1 - a)となる」という話と同じです。

後はこの「n桁目の数がx_nの2進数」と「n桁目の数が(1 - x_n)の2進数(ビット反転させた2進数)」を比較し、
1の補数の定義と合致しているかを確認すればいいと思います。

> また追加で質問なのですが、先の100001÷110=101…11で
> (1)余りを出す
> (2)割り切る という二つの計算方法があるらしく、これは(1)の計算方法なのですが、(2)の割り切るとはいったいどのような方法なのでしょうか?

多分ですが、「小数を使って割りきれ」ということだと思います。

       101
   ―――――――
110)100001
     110
    ――――
      100
        0
      ―――
      1001
       110
     ...続きを読む

Q計算値と理論値の誤差について

交流回路の実験をする前に、ある回路のインピーダンスZ(理論値)を計算で求めたあと、実験をしたあとの測定値を利用して、同じ所のインピーダンスZ(計算値)を求めると理論値と計算値の間で誤差が生じました。
そこでふと思ったのですが、なぜ理論値と計算値の間で誤差が生じるのでしょうか?また、その誤差を無くすことはできるのでしょうか? できるのなら、その方法を教えてください。
あと、その誤差が原因で何か困る事はあるのでしょうか?
教えてください。

Aベストアンサー

LCRのカタログ値に内部損失や許容誤差がありますが、この誤差は
1.Rの抵抗値は±5%、±10%、±20% があり、高精度は±1%、±2%もあります。
2.Cの容量誤差は±20% 、+50%・ー20% などがあり
3.Lもインダクタンス誤差は±20%で、
3.C・Rは理想的なC・Rでは無く、CにL分、Lに抵抗分の損失に繋がる成分があります。
これらの損失に繋がる成分は、試験周波数が高くなると、周波数依存で増大します。
また、周囲温度やLCRの素子自身で発生する自己発熱で特性が変化します。
測定器や測定系にも誤差が発生する要因もあります。
理論値に対する測定値が±5%程度発生するのは常で、実際に問題にならないように、
LCRの配分を工夫すると誤差やバラツキを少なく出来ます。
 


人気Q&Aランキング