平成30年度 春期 基本情報技術者試験 午前 問1
テクノロジ/基礎理論ある整数値を,負数を2の補数で表現する2進表記法で表すと最下位2ビットは“11”であった。10進表記法の下で,その整数値を4で割ったときの余りに関する記述として,適切なものはどれか。ここで,除算の商は,絶対値の小数点以下を切り捨てるものとする。
出典:平成30年度 春期 基本情報技術者試験 午前 問1
- アその整数値が正ならば3
- イその整数値が負ならば−3
- ウその整数値が負ならば3
- エその整数値の正負にかかわらず0
正解:ア
解説
2の補数表現では,負の数を含めて整数の下位kビットは,その整数を2^k で割った剰余(0以上2^k未満)と一致します。最下位2ビットが“11”ということは2進数で2,すなわち4で割った剰余が3であることを意味します。ただし,本問では商を絶対値の小数点以下切り捨てで求めるため,整数が負の場合は余りの符号が変わり,3ではなく−1になります。したがって,余りが3になるのは整数が正の場合だけです。
選択肢ごとの解説
- ア正しい。最下位2ビットが“11”の整数を4で割った剰余は,2進数の下位ビットの性質から3になります。整数が正の場合は絶対値の切り捨て除算でも符号は変わらず,余りはそのまま3です。
- イ誤り。整数が負の場合,絶対値の小数点以下を切り捨てる除算では余りは−1になり,−3にはなりません。
- ウ誤り。整数が負の場合の余りは−1であり,3になるのは整数が正の場合です。
- エ誤り。余りが常に0になるのは整数が4の倍数(下位2ビットが“00”)の場合であり,本問の下位2ビットは“11”なので0にはなりません。