• ベストアンサー

二進数の引き算がよくわからない

0.1B - 1.01B =って十進数に変換せずに、二進数のままではどう計算するんですか? 大きいのから小さいのを引く計算は大丈夫だけど、逆はよく分かりません。 2^-2の位は、0-1なので1となる。 2^-1の位は、2^-2の位の計算で繰り下がってきた1を引いて0となる。 2の位は、0-1なのでで1となる。 これに-をつける。 よって、-1.01B。 たぶん、間違えてる気がします…

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

10進数と同じなんですけどねぇ。 3-6はどうやってます? 3<6なので、解は負と分かります。そこで、 6-3をやって、答えにマイナスを付けますね。 だから0.1B-1.01Bも0.1B<1.01Bだから、逆の 計算をして、マイナスを付けます。 1.01B-0.1B=0.11B、これにマイナスを付けて -0.11Bが答えということです。 逆算してみましょう。 0.1B-1.01B=-0.11Bとするなら、 0.1B=1.01B-0.11Bが成り立ちます。-1.01Bを 右辺に移動したので符号が反対になります。  1.01B -0.11B -------  0.10B ご理解いただけましたか?

dye-39
質問者

お礼

>10進数と同じなんですけどねぇ。 そう考えたらとても楽になりました。 解答ありがとうございました!

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

>0.1B - 1.01B ゼロではない 0.1B という値から 1.01B を引いた値が、 なぜ引いた数と同じ値になるのでしょうか。 そこを見ただけでも、 >よって、-1.01B。 これは間違いであることがわかりますね。

dye-39
質問者

お礼

解答ありがとうございます。