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