SkillStack
テクノロジ系1 / 80問

応用情報技術者試験 令和5年度 秋期 午前 問1

2 桁の 2 進数 x₁x₂ が表す整数を x とする。2 進数 x₂x₁ が表す整数を、x の式で表したものはどれか。ここで、int(r) は非負の実数 r の小数点以下を切り捨てた整数を表す。

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】ウ

2進数x₁x₂では、上位ビットx₁の重みが2、下位ビットx₂の重みが1なので、x=2x₁+x₂です。xは0~3であり、xを2で割って小数点以下を切り捨てると、int(x/2)=x₁になります。ここでq=int(x/2)と置くと、x₂=x-2qです。桁を交換したx₂x₁の値は2x₂+x₁なので、2(x-2q)+q=2x-3q=2x-3int(x/2)となります。したがって、ウが正解です。

アの2x+4int(x/2)は誤りです。例えばx=2、すなわち10を反転すると01=1ですが、この式では8になります。上位ビットの重みを取り除く処理ができていません。

イの2x+5int(x/2)も誤りです。同じくx=2を代入すると9となり、反転後の値1と一致しません。

エの2x-4int(x/2)も誤りです。x=2では0となりますが、反転した01の値は1です。下位側へ移したx₁の重み1が加えられていません。

【ポイント】 2進数の各桁は、右から順に1、2、4、8という重みをもちます。 2桁の非負整数では、int(x/2)によって上位ビットを取り出せます。 迷ったときは、00、01、10、11の全4通りで式を検算すると確実です。

出典:令和5年度 秋期 応用情報技術者試験 午前 問1
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の80問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める