• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2の補数の問題)

2の補数の問題とは?

このQ&Aのポイント
  • 負数を2の補数で表現する符号付き16ビットの2進数を16進法で表示したもののうち、4倍するとあふれが生じるものはどれか。
  • 負数を2の補数で表現する際、符号が変わるとあふれが生じる。
  • DFFFとE000の2進数表現において、4倍すると符号が変わらないため、あふれは生じない。

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

  • ベストアンサー
  • jk39
  • ベストアンサー率54% (366/670)
回答No.1

先頭ビットが符号を意味するわけですが、 左シフトでは、1ビットずつ左シフトしたときに、 その先頭ビットの符号が変わってしまうようだと「桁あふれ」になります。 chaozuxさんは一度、正数に戻してからお考えのようですが、 コンピュータ内では負数を2の補数表現のままシフトしますから、 直す必要はありませんよ。 では例示します。 イ DFFF →(シフト前)1101 1111 1111 1111 →(シフト後)0111 1111 1111 1100 ※先頭ビットが1から0に変わったので「桁あふれ」。 ウ E000 →(シフト前)1110 0000 0000 0000 →(シフト後)1000 0000 0000 0000 ※ぎりぎり先頭ビットは1のままなのでセーフ。

参考URL:
http://www.cc.kyoto-su.ac.jp/~kbys/kiso/number/int-op.html
chaozux
質問者

お礼

なるほど!2の補数表現のままシフトさせるのですね! 大納得です。 大変わかりやすい回答ありがとうございました。

関連するQ&A