- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
上に書いてある2進数の引き算をやりたのですか? 下に書いてある2つの2進数の足し算は両方共に間違っています。 上の式の引き算を下に書いてあるような足し算で求めたいのなら、 最初はマイナスの2進数をプラスの2進数に変えます。(2の補数) *まずビット数を揃えます。 11011 → 0011011 その2進数のすべてのビットを反転させて1の補数を求めます。 0011011 → 1100100 次に1の補数(上記の2進数)に1を加えます。 1100100+0000001 = 1100101(これが2の補数です。) ここではじめて2進数の足し算ができます。 1010001 + 1100101 ---------------- 10110110 で、これが回答です。0110110 = 54 一番左のビット(MSB)はキャリーオーバーですので無視。答えに書く必要はありません。 2進数の2の補数を少し勉強してくださいね。
- info22_
- ベストアンサー率67% (2650/3922)
何をしたいのか、問題分がないので、今一良く分かりません。 符号なし2進数を扱っているのですか? それとも 2の補数法で符号付2進数を扱うのですか? この場合、符号長(ビット数)は何桁(何ビット)ですか? 2の補数法と符号なし2進数では先頭ビットの1の意味が全く異なるので明確にして下さい。 先ず、以上を明確に書いて下さい。 それから、上の式は引き算、下の左側の積み算は足し算、下の右側の積み算は引き算ですが、 やりたいのは、引き算だけで、積み算でやりたいのですか? それとも積み算の加算もしたいのでしょうか? 以上、補足に回答して下さい。 それにより回答も変わってきますので…。
- B-juggler
- ベストアンサー率30% (488/1596)
えっと、普通に引いてもいいのに、マイナスにしている過程で間違ってあるようですよ。 (110110)2 = (54)10 になるはずだけど? マイナスにする方法がどうも違うと思うよ。 下から四桁目じゃないかな? m(_ _)m