これからの季節に親子でハイキング! >>

2進数の引き算の方法がいまいちわかりません。

1 0 1 1
0 1 0 0
-------
0 1 1 1

上のような式なら下から三桁目で0から1は引けないから上の桁から1を借りてきて10 - 1という計算をするのですよね??

1 0 1 0 0
0 1 0 0 1
-----------

上のような場合、1桁めで上の位から1を借りようと思っても、2桁目が0なので、どうしたらよいのか分かりません。10進数なら9になるのは分かるんですけど、二進数の場合どういう計算になるのでしょうか?

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

A 回答 (3件)

簡単に考えると、



1 0 1 0 0
0 1 0 0 1
-----------
から

1 0 0 1 2 ←(2進数ですがあくまでも考え方として「2」と示します。)
0 1 0 0 1
-----------
よって

0 1 0 1 1 となります。
    • good
    • 2
この回答へのお礼

なるほど~。2を借りてくる、という考え方なのですね!
分かりやすい説明をどうもありがとうございました。
理解できました。

お礼日時:2006/01/02 01:31

上の桁から10借りてくるのは10進数です。

質問の例では2借りてきて1引くので答えの下から3桁目は1になります。
(100)-(001)では(020)-(001)、、(012)-(001)=(011)

こういう場合の2や10進数計算での10借りてくる(2や10で繰り上がる)はそろばん考えるとわかりやすいです。古いそろばんは上が5、下に1が5つあって10あらわしました。
2進数そろばんは上が1が1つ、下も1つだけ玉があってあわせて2で繰り上がります。
    • good
    • 0
この回答へのお礼

2を借りてくる、という考え方がよく分かりました!!
詳しく説明していただきどうもありがとうございました。

そろばんですかぁ~。苦手ですけど、考えてみます。ありがとうございました。

お礼日時:2006/01/02 01:34

>1桁めで上の位から1を借りようと思っても、2桁目が0なので、どうしたらよいのか分かりません。


3桁目の1を借ります。
100 から 1 を引きます。
100-001=011

例えば、10000-1の場合、
5桁目の1を借ります。
10000-1=01111 となります。 

質問の答えは 10100-01001=01011 となります
    • good
    • 0
この回答へのお礼

3桁目の1は気になっていたのですが、そこから借りてこればよいのですか~。
100-001=011
となることがよく分かりました。どうもありがとうございました。

お礼日時:2006/01/02 01:33

お探しの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進数の掛け算で困っています。よろしくお願いします。

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進数の掛け算で困っています。よろしくお願いします。

10進数で2*(-3)=-6ですが、これを3bitの2進数で行ないたいと思います。
すると、010*101(2の補数)=01010となります。
-6は10(2の補数)となるはずですが答えが異なります。
符号拡張というものがあるということで、次はそれで行なってみます。
010*1101(符号を拡張した2の補数)=011010となります。
答えが異なります。ますますわけがわかりません。
----------
次に10進数で(-1)*(-1)=1ですが、これを2bitの2進数で行ないた...続きを読む

Aベストアンサー

先ず最初に、間違いの指摘を一つ。
>Nビット×Mビット=N×Mビットになる
Nビット×MビットはN+Mビットです。
ビット数を数えることは、(2を底とした)対数演算に置き換えられます。
つまり、Nビット数であるnとMビット数であるmを考えると、
log2(n) = N, log2(m) = Mと置けます。
つまりn×mのビット数はlog2(n×m)となり、log2(n)+log2(m)となります。
更に付け加えると、符号付の場合はNビット×Mビットが(N-1)+(M-1)ビットになってしまいます。
これは符号ビットの分、有効ビット数が減るためです。

さて、最初の問題に取り掛かりましょう。
3ビット * 3ビットの演算とありますが、符号ビットがあるので有効ビットは2ビットになってしまいます。
つまり、010 * 101 = 1010となり、4((3-1)+(3-1))ビットの符号付整数となります。
これは10進数に変換すると-6です。
また、符号拡張した場合も010 * 1101 = 11010という5((3-1)+(4-1))ビットの符号付整数ですからこれも-6になります。

次の問題も同様で、11 * 11 = 01、111 * 111 = 0001と、それぞれ1になります。

先ず最初に、間違いの指摘を一つ。
>Nビット×Mビット=N×Mビットになる
Nビット×MビットはN+Mビットです。
ビット数を数えることは、(2を底とした)対数演算に置き換えられます。
つまり、Nビット数であるnとMビット数であるmを考えると、
log2(n) = N, log2(m) = Mと置けます。
つまりn×mのビット数はlog2(n×m)となり、log2(n)+log2(m)となります。
更に付け加えると、符号付の場合はNビット×Mビットが(N-1)+(M-1)ビットになってしまいます。
これは符号ビットの分、有効ビット数が減るためです。

...続きを読む

Q2進数のマイナス表現?

学校の課題で出たのですが
この「2進法のマイナス表現」の意味が全く分からないため全然進みません.
どういう意味なのでしょうか・・・
数学苦手です。
詳しく教えてください.お願いします.

Aベストアンサー

計算機科学の話であれば、他の方々の回答通り、
「2の補数」と呼ばれる表現を使います。
ただ、一般的な「数学」であれば、10進法と同じく、
先頭にマイナス記号をつけたものが負の数です。


価格.com 格安SIM 料金比較