平成23年度秋期 応用情報技術者試験 午前 問1
xは,0以上65,536未満の整数である。xを16ビットの2進数で表現して上位8ビットと下位8ビットを入れ替える。得られたビット列を2進数とみなしたとき,その値をxを用いた式で表したものはどれか。ここで,a div bはaをbで割った商の整数部分を,a mod bはaをbで割った余りを表す。また,式の中の数値は10進法で表している。
- ア (x div 256)+(x mod 256)
- イ (x div 256)+(x mod 256)×256
- ウ (x div 256)×256+(x mod 256)
- エ (x div 256)×256+(x mod 256)×256
解答・解説を見る
正解:イ
AI解説
16ビットの値xについて、上位8ビットはx div 256(256で割った商)、下位8ビットはx mod 256(256で割った余り)で取り出せる。上位と下位を入れ替えると、元の下位8ビットが上位側(256倍の重み)に、元の上位8ビットが下位側(重み1)に移るので、新しい値=(x mod 256)×256+(x div 256)となる。項の順序を変えたイの式(x div 256)+(x mod 256)×256がこれと一致する。 ア: 上位・下位をそのまま加算しただけの式で、入替え後の桁の重み(256倍)が反映されていない。 イ: 正しい。元の下位ビット(x mod 256)を256倍して上位に置き、元の上位ビット(x div 256)を下位に置く式である。 ウ: (x div 256)×256+(x mod 256)は入替え前のxそのものを表す式である。 エ: 両方に256を掛けており、16ビットに収まらない誤った式である。 💡 具体値で検算すると確実。例えばx=0x0102(258)なら、div 256=1、mod 256=2で、入替え後は0x0201=513=1+2×256となり、イが成り立つ。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。