2014年7月1日火曜日

H25秋 午前問2

32bitのレジスタと書いてあるので32桁用意されているところに

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

答え ア

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。