シフト演算

負数を2の補数で表現する場合、算術右シフトでは符号ビットが左側に補充されます。-100(8ビット表現: 10011100)を1ビット算術右シフトすると11001110(-50)となり、空いた上位ビットには符号ビットと同じ1が入るため、アです。 負数を2の補数表現で表したときの算術右シフトの規則を確認する。 算術右シフトでは最上位ビット(符号ビット)が保持され、空いたビットに符号ビットと同じ値が補充される。 したがって空いたビットに入る値は1であり、値は元の1/2になる。

数値を2進数で表すレジスタがある。このレジスタに格納されている正の整数xを10倍する操作はどれか。ここで,桁あふれは,起こらないものとする。

出典平成29年度 秋期 基本情報技術者試験 午前 問1
xを2ビット左にシフトした値にxを加算し,更に1ビット左にシフトする。
xを2ビット左にシフトした値にxを加算し,更に2ビット左にシフトする。
xを3ビット左にシフトした値と,xを2ビット左にシフトした値を加算する。
xを3ビット左にシフトした値にxを加算し,更に1ビット左にシフトする。