16進数ABCDが入っているといっているので、16進数は2進数だと4bit必要なので
ABCDだと16bitあれば足りるということになる。
ただ、論理シフトをするので、十分に桁数があることを示しただけと思われる
16進数 A(10) → 2進数 1010
16進数 B(11) → 2進数 1011
16進数 C(12) → 2進数 1100
16進数 D(13) → 2進数 1101
なので
0000|0000|0000|0000|1010|1011|1100|1101
ということになる。
この状態から2bitだけ右へ論理シフトするので…
左シフト(論理シフト) → 一番左の桁を押し出し、一番右の空いた桁には0を埋める
左シフト(算術シフト) → 同じ
右シフト(論理シフト) → 一番右の桁を押し出し、一番左の空いた桁に0を埋める
右シフト(算術シフト) → 一番右の桁を押し出し、一番左の空いた桁にシフトする前の符号ビットと同じ値を代入
よって右に2つ桁をずらすので
0000|0000|0000|0000|1010|1011|1100|1101
0000|0000|0000|0000|0010|1010|1111|0011
となる。
再び16進数に直すと
0010|1010|1111|0011
↓ ↓ ↓ ↓
2 10 15 3
2 A F 3
答え ア
再び16進数に直すと
0010|1010|1111|0011
↓ ↓ ↓ ↓
2 10 15 3
2 A F 3
答え ア
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。