next up previous
: 論理演算 : AND、OR、シフト : [付録] 加算・減算および論理演算 (復習) : [問題] 加算・減算

[問題] 加算・減算のオーバーフロー

ハードウェア的には、 $n$ ビットの加算 (減算) はその演算結果も $n$ ビットに限定される。 例えば、MIPS R2000 CPU のレジスタは 32 ビットであるから、32 ビットで表される 最大数より大きい数は格納できない。 そのため、正の大きい数や負の大きい数が演算結果に出る場合、 結果に矛盾がでることがある。これがオーバーフローである。 これを確かめてみよう。

[問題]

  1. 010101 + 010101 を筆算で行なってみよ。10 進数でこの計算を表せ。結果は負の数になるが、その理由を考察せよ。
  2. 100000 + 111111 を筆算で行なってみよ。ただし、最上位ビット (MSB) からの桁上がりは捨てられることに注意せよ。10 進数でこの計算を表し、結果について考察せよ。


平成16年12月13日