IPA過去問ドリル

平成30年度 春期 基本情報技術者試験 午前 問1

テクノロジ/基礎理論

ある整数値を,負数を2の補数で表現する2進表記法で表すと最下位2ビットは“11”であった。10進表記法の下で,その整数値を4で割ったときの余りに関する記述として,適切なものはどれか。ここで,除算の商は,絶対値の小数点以下を切り捨てるものとする。

出典:平成30年度 春期 基本情報技術者試験 午前 問1

正解:ア

解説

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にはなりません。
基本情報技術者の過去問を演習モードで解く