修了試験 2022-01-23実施分 基本情報技術者試験 問1
0以上65,536未満の整数xを,16ビットの2進数で表現して,上位8ビットと下位8ビットを入れ替える。 得られたビット列を2進数とみなしたとき,その値をxを用いた式で表したものはどれか。 ここで,a÷bはaをbで割った商の整数部分を,a%bはaをbで割った余りを表す。 また,式の中の数値は10進数である。
正答2
解説
正解は2です。 16ビットの整数は、上位8ビットと下位8ビットに分けて考えます。 2の8乗は256なので、上位8ビットの値はx÷256、下位8ビットの値はx%256で取り出せます。 【計算】 上位8ビットの値は、xを256で割った商のx÷256です。 下位8ビットの値は、xを256で割った余りのx%256です。 入れ替えると、元の下位8ビットが新しい上位8ビットになります。 上位8ビットに置く値は、256倍した重みをもちます。 したがって、新しい値は(x%256)×256+(x÷256)です。 足し算の順序を入れ替えると(x÷256)+(x%256)×256となり、選択肢2と一致します。 【選択肢別解説】 1:× 元の下位8ビットを256倍していない点が誤りです。 上位8ビットへ移した値には256の重みを掛ける必要があります。 2:○ 元の下位8ビットに256を掛けて上位に置き、元の上位8ビットを下位に置いた式です。 入れ替え後の値を正しく表しています。 3:× (x÷256)×256+(x%256)は、入れ替える前のxそのものを表す式です。 ビットを入れ替えた結果ではありません。 4:× 両方の項に256を掛けているので、下位8ビットに当たる部分が0になってしまいます。 入れ替え後の値とは一致しません。 【ポイント】 2進数でnビット左へずらすことは2のn乗を掛けることに当たります。 256で割った商と余りで上位・下位8ビットを取り出す考え方は頻出です。まとめて解く
修了試験 2022-01-23実施分を通しで解く(80問)→