0以上65,536未満の整数xを,16ビットの2進数で表現して,上位8ビットと下位8ビットを入れ替える。
得られたビット列を2進数とみなしたとき,その値をxを用いた式で表したものはどれか。
ここで,a÷bはaをbで割った商の整数部分を,a%bはaをbで割った余りを表す。
また,式の中の数値は10進法である。
×不正解です
16ビットの2進数は「上位8ビット (高位)」と「下位8ビット (低位)」に分けられます。この問題では、上位8ビットと下位8ビットを入れ替えます。この操作は、上位8ビットを右に8ビットシフトして下位に、下位8ビットを左に8ビットシフトして上位に持ってくることに相当します。
2進数の右シフトは、ビットを右に移動させ、それにより数値を 1/2, 1/4, 1/8,... といった具合に減少させます。この場合、8ビット分右にシフトすれば、2^8=256 で割る計算になります。同様に、左にシフトする場合は、シフト毎に数値が2倍になるので、8ビット分左にシフトすれば256を掛けることに相当します。
- 上位8ビットの数値は、16ビットの整数を256で割った商で与えられます(x ÷ 256)
- 下位8ビットは、整数を256で割った余りで表されます(x % 256)
- 上位8ビットを右シフトで下位へ移動させると (x ÷ 256) そのまま、
- 下位8ビットを左シフトで上位へ移動させるために (x % 256) × 256 となります
したがって、入れ替えた後の2進数の値は、(x ÷ 256) + (x % 256) × 256 で表現されます。
回答数 0
正解率 0%