アプリ版:「スタンプのみでお礼する」機能のリリースについて

この問題について質問です。
4bitの2の補数にて以下の計算を行え。
(1)飽和演算:(-3)+(-7)+5
(2)ラップアラウンド演算:(-3)+(-7)+5
(3)飽和演算:(-3)+(-7)+1
(4)ラップアラウンド演算:(-3)+(-7)+1
についてですが、(1)1110(2)1011(3)1010(4)1001で合っていますか?

質問者からの補足コメント

  • うーん・・・

    解説ありがとうございます。
    質問なのですが、ー8ではなくー7ではないのですか?
    大学ではそう言われた気がして...

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/08/28 13:15
  • もしかして、今回はー3ー7=ー10になるから負の場合はー8になるという事ですか?

      補足日時:2020/08/28 13:19
  • どう思う?

    なるほど。
    つまり答えは(1)1101(2)1011(3)1001(4)1000になると言うことですか?
    間違えがあればご指摘お願いします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2020/08/29 18:31

A 回答 (2件)

・4bitの2の補数表現 ということは、 -8〜7 の範囲になります。


※ -2の4乗〜 (2の4乗 -1)

・通常、コンピュータでの演算は 演算子一つずつ解決します。
飽和演算も、この一つずつの演算毎に行います。



・飽和演算 は、計算の結果が範囲外になるようなら、範囲の最大/最小値が答えになる、というものです。
(-3) + (-7) を普通に計算すると -11 であり -8より小さくなってしまいます。
よって、 - 8 になります。

(1)
(-3)+(-7)+5 = -8 + 5 = -3
です。
-3 を 4bitの2の補数表現 したらどうなるでしょう?
※ 1110 は -2 です。

(3)も同じように(-3) + (-7) を求めて +1 です。
この回答への補足あり
    • good
    • 0

> 質問なのですが、ー8ではなくー7ではないのですか?



つぎのいずれかでしょう。
○ 「大学ではそう言われた気がして...」というのが間違い/勘違い
 「+側に越えたら(+の最大値の) 7 」と言ったのを、「-なら-7」 と思ってしまった
○「4bitの2の補数表現で 1000 は +8 として扱う」という流儀
○「+と-の絶対値での範囲を一緒にしたいから、1000 は使わない」という流儀
この回答への補足あり
    • good
    • 0

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