2023年4月から基本情報技術者の試験制度が変更されました。
試験制度は変更されたものの科目B(旧:午後問題)の重要さは変わりません。
出題方式は「多肢選択式」で以前と同じですが、データ構造及びアルゴリズムが8割、情報セキュリティが2割の割合で出題される点が大きく変わっています。
合格基準点は600点以上/1000点満点中、つまり6割以上取れれば合格になります。
サンプル問題では前半16問が「データ構造及びアルゴリズム」の問題。残り4問が「情報セキュリティ」の問題。となっています。
サンプル問題は公式にIPAから出されている貴重な情報です!
早速、問題を見ていきましょう!
問16 (データ構造及びアルゴリズム)
設問
解答
答え:「ク」
解説
2進数の余りの求め方がわかれば、解ける問題です。
符号位置は800(16)以上FFFF(16)とあることから、引数 codePoint のビット長は12ビット以上16ビット以下ということがわかります。
※800(16) = 1000 0000 0000(2)
FFFF(16) = 1111 1111 1111 1111(2)
utf8Bytesの要素数は3のため、for文のループ変数 i は-1しながら、3回繰返されます。
処理は以下のとおりです。
1回目:utf8Bytes[3] に codePoint の下位6ビットをコピー
2回目:utf8Bytes[2] に codePoint の下位7ビット目から12ビット目までの6ビットをコピー
3回目:utf8Bytes[1] に codePoint の残りの部分をコピー
変数 cp より下位6ビットを取得する方法ですが、2進数で下位2桁を取得するときには「4」で割ることになります。今回は下位6ビットを取得したいため「64」を使うのが適切です。
よって、正解の選択肢は「ク」になります。
最後に
いかがだったでしょうか。
2進数の計算方法についての知識があれば、計算方法を確認する工程は省けます。ただ、知識がなくても具体的な値で試すことで、問題を解くことは可能です。
解答までに時間がかかるかもしれませんが、他の問題を先に解いてそれ以外の時間を回して解けば解けるかと思います。
諦めずに冷静に解いていきましょう!