
出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」
整数を8ビットの2の補数表現で表しているとき、最も適切な記述を選ぶ問題。値を2倍にするには、オーバーフローが起こらない限り、1ビット左シフトで実現できる。
2の補数表現の性質(表現範囲、オーバーフロー、符号反転、シフト演算)を確認する問題。
① 8ビット2の補数: 範囲は −128〜127、−x = 全ビット反転+1、11111111 = −1、左シフト1回で2倍
② ①117+12=129で127を超える、②反転だけでは+1が足りない、④128は表せない、⑤最小は10000000(−128)
③ ③
2の補数表現では、1ビット左シフトは、2倍に相当する(オーバーフローが起こらない限り、符号付きの値でも成立する)。したがって③が最も適切である。
nビットの2の補数の範囲は、−2^(n−1)〜2^(n−1)−1(8ビットなら−128〜127)。−x=(xの全ビット反転)+1。左シフトは2倍、算術右シフトは、1/2倍(切捨て)。
キーワード: 2の補数、8ビット、オーバーフロー、シフト演算、負数、整数表現、情報工学部門
同じ問題が計2回出題されています(平成28年度、令和7年度)。