整数を8ビットの、2の補数表現で表しているとする。次のうち正しいものを選べ。
① 最も小さい値は111111112である。
② 21と-21の2の補数表現は、全ビットの0と1を交換したものである。
③ 表現できる範囲は、-128から128までである。
④ 011101012 + 000011002 はオーバーフローしないで計算できる。
⑤ 2倍をするのに、オーバーフローが起こらない限り、1ビット左シフトで実現できる。
⑤
① 最も小さい値は -128であり、2の補数表現では、10000000 である。
② 2の補数表現は、全ビットの0と1を交換して、1を加える。全ビットの0と1を交換しただけのものは1の補数である。
21は 000101012 であり、-21は 111010112 である。
③ 表現できる範囲は 10000000 ~ 01111111 で10進数では、-128~127である。
④ 011101012 + 000011002 = 1000000012 となり、オーバーフローする。
10進数では117+12 = 129であり、-128~127の範囲を超える。
⑤ 正しい。1ビット右シフトすると、2分の1になる。
Ⅳ-1 | 目次 | Ⅳ-3 |