修了試験 2011-07-02実施分 基本情報技術者試験 問1
1バイトのデータで0のビット数と1のビット数が等しいもののうち,符号なしの2進整数として見たときに最大になるものを,10進整数として表したものはどれか。
正答4
解説
正解は4です。 1バイトは8ビットなので、0と1が同数なら1のビットは4個です。 符号なし2進整数では上位のビットほど重みが大きいので、4個の1をすべて上位側に寄せたときに最大になります。 【計算】 最大になるビット列は11110000です。 各ビットの重みは上位から128、64、32、16です。 128+64+32+16=240です。 【選択肢別解説】 1:× 120は2進数で01111000です。 1は4個ありますが、最上位ビットが0なので240より小さくなります。 2:× 127は2進数で01111111です。 1が7個、0が1個なので、0と1が同数という条件を満たしません。 3:× 170は2進数で10101010です。 1は4個ありますが、1が上位に詰まっていないので最大ではありません。 4:○ 240は2進数で11110000です。 1を4個とも上位4ビットに置いた形で、条件を満たす中で最大の値です。 【ポイント】 「最大にしたいなら1を上位へ、最小にしたいなら1を下位へ」と考えます。 同じ条件で最小になるのは00001111、つまり15です。まとめて解く
修了試験 2011-07-02実施分を通しで解く(80問)→