平成22年度春期 応用情報技術者試験 午前 問1

分野:基礎理論(2進数・論理・集合・確率統計・情報理論・AI/機械学習の理論・オートマトン・形式言語・計算量)|実際に出題されたIPA過去問題

0以上255以下の整数nに対して,next(n)=n+1(0≦n<255),0(n=255)と定義する。next(n)と等しい式はどれか。ここで,x AND y及びx OR yは,それぞれxとyを2進数表現にして,けたごとの論理積及び論理和をとったものとする。

  1.  (n+1) AND 255
  2.  (n+1) AND 256
  3.  (n+1) OR 255
  4.  (n+1) OR 256
解答・解説を見る

正解:ア

AI解説

next(n)は255の次に0へ戻る循環加算である。255は2進数で全ビット1(11111111)なので、(n+1)とANDを取ると、n=255のときn+1=256(100000000)は8ビットを超えてしまい、下位8ビットとのAND(255との論理積)により上位のけたが切り捨てられて0となる。n<255のときはn+1がそのまま8ビット以内に収まりAND結果も変化しない。したがって正解はアである。 ア: (n+1) AND 255。255は8ビット全て1のマスクなので、n+1が256(9ビット目が1)になっても下位8ビットだけが残り0になる。n<255では影響なくn+1のまま。next(n)の定義と一致する。これが正解。 イ: 256は2進数で100000000であり、(n+1) AND 256は9ビット目のみを取り出す演算になってしまい、next(n)の定義とは一致しない。 ウ: OR演算では常に255の全ビットが立つため、結果は常に255となり、next(n)の定義(0〜255を循環する加算)とは一致しない。 エ: 256とのOR演算では9ビット目が常に1になり、8ビットの範囲を超える値になってしまうため、next(n)の定義とは一致しない。 💡 「255でAND(マスク)を取る」は8ビットの範囲に値を折り返す定石のテクニック。オーバーフロー処理でよく使われる考え方として覚えておく。

出典:平成22年度 春期 応用情報技術者試験 午前 問1 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「基礎理論」分野の攻略ポイント

2進数・論理演算・集合・確率統計・情報理論・AI/機械学習の理論・オートマトン・形式言語・計算量が範囲です。純粋な計算問題が多く、対策の有無がそのまま得点差になります。手を動かす練習が最も効く分野です。

基礎理論の攻略ポイントをすべて見る(要点6項目・ひっかけ3項目)→

同じ分野(基礎理論(2進数・論理・集合・確率統計・情報理論・AI/機械学習の理論・オートマトン・形式言語・計算量))の過去問