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

この問題について質問です。
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で合っていますか?

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

  • どう思う?

    飽和演算に誤りがありました。それも含めて途中経過を書いておきます。
    (1)ー3ー7=ー10なのでー8を下回っている。よってー8。ー8+5=ー3より1101
    (2)ラップアラウンドはそのまま計算できるので、ー10+5=ー5より1011
    (3) ー3ー7=ー10なのでー8を下回っている。よってー8。ー8+1=ー7より1001
    (4) ラップアラウンドはそのまま計算できるので、ー10+1=ー9。ー9はー8を下回っているので、ー8となる。よって1000。
    誤りがあれば解説お願いします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/08/29 10:25
  • どう思う?

    確認ありがとうございます。
    (4)はー10+1でー9になって、ー9は4ビットの2の補数で表現不可なので、ー9はー8を下回るのでそれが答えかと。
    間違っていればご指摘お願いします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2020/08/29 19:35
  • うーん・・・

    ほんとですね。
    でもー9って4ビットの2の補数で表現できなくないですか?

    No.3の回答に寄せられた補足コメントです。 補足日時:2020/08/29 19:43
  • (2)はー3ー7+5がー5になる。ー5は4ビットの2の補数で表現できる。よって1011
    しかもあなたは問題ないと言った。
    (4)はー3ー7+1がー9になる。でもー9は4ビットの2の補数で表現できない。
    じゃあ、どうする?
    問題ないと言われた(2)と同じ手法で(4)をやった。
    値を変えるとは?矛盾してるとは??

    No.4の回答に寄せられた補足コメントです。 補足日時:2020/08/29 23:28
  • 僕は言いました。
    No1の補足にて、間違いがあれば解説お願いしますって。
    それなのにあなたは解説すらしてませんよね?
    違ってたら素直に違う。本当はこうやるんだよ。って教えるのが基本じゃないんですか?
    「なぜそこだけ飽和演算で求めてるの?」
    これが解説?その一文で分かるとでも??

      補足日時:2020/08/29 23:34
  • どう思う?

    つまりー9は4ビットの2の補数で表現出来ないからいったん5ビットの2の補数で表現して10111。
    下の4ビットだけ使うから0111になるという事ですか?

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

A 回答 (5件)

https://oshiete.goo.ne.jp/qa/11851833.html
話が飛ぶから、同じ質問を何度もするのはやめていただきたいのですが。


ラップアラウンドは「最大値より1大きい値は最小値」という感じにリング状になるように演算する方法です。
これをコンピュータ上のnビット演算で行うと、「桁あふれした分は無視する」という簡単な処理で実現できます。
4ビットで演算するなら、5ビット以上になったら下の4ビットだけ使う、というものです。
※ 数学的には、2^nを法とる合同式、ということになります。

この方法の利点があります。
・2の補数表現を使った負の値と相性がいい
・回路が簡単
・A+B+C を計算する場合、
  A+B で一旦ラップアラウンドして +C してラップアラウンドしても、
  A+B+Cを求めてからラップアラウンドしても
 結果は同じ



「ラップアラウンドはそのまま計算できる」の意味を勘違いされています。
「範囲外になったらラップアラウンドの処理をする」というのは、どういう順番で計算しようが必要です。
この回答への補足あり
    • good
    • 0

-10 は「4ビットの 2の補数」では表現できないよね. にもかかわらずあなたは (2) で「そのまま計算できる」として「表現でき

ない」という事実を無視してる. 一方で「-9 って 4ビットの 2の補数で表現できなくないですか」といって勝手に値を変えてる. 矛盾してるとは思わないかな?
この回答への補足あり
    • good
    • 0

なぜそこだけ飽和演算で求めてるの?

この回答への補足あり
    • good
    • 0

(1)~(3) は OK.



(4) の最後の「ー9はー8を下回っているので、ー8となる。よって1000。」は, どうしてそうなるのか説明できますか?
この回答への補足あり
    • good
    • 0

ちょっと確かめたいことがあるので, それぞれの計算の「途中経過」も見せてもらえないだろうか.

この回答への補足あり
    • good
    • 0

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