8ビットの2進数11010000を右に2ビット算術シフトしたものを、00010100から減じた値はどれか。
ここで、負の数は2の補数表現によるものとする。
ア | 00001000 |
イ | 00011111 |
ウ | 00100000 |
エ | 11100000 |
答え ウ
【解説】
11010000を右に2ビット算術シフトすると、符号ビットが“1”なので、
11110100
になり、これを00010100から減じるので、
00010100 - 11110100 = 00010100 + 00001100 = 00100000
(ウ)になります。
※“- 11110100”から“+ 00001100”の変換は2の補数で行っています。
ここでは、説明を省きますが、2の補数の演算もできるようにしてください。
【キーワード】
・算術シフト