この人頭いいなと思ったエピソード

32ビットのレジスタに16進数ABCDが入っているとき、2ビットだけ 左 に論理シフトしたときの値を16進数で答えなさい。


2 A F 3 4

に答えはなりますか?

A 回答 (5件)

そうですね。

そのとおりです。

32ビットだから、
元の値は、
0000ABCD
ってことですね。
0000 0000 0000 0000 1010 1011 1100 1101
2ビット左に『論理シフト』
0000 0000 0000 0010 1010 1111 0011 0100
0002AF34
となります。

申し訳ありませんでした。
    • good
    • 0

なります。



32bitなのになぜ2bitがオーバーフローして切り捨てられるのだろう? はじめに格納されているのは0000ABCD。
    • good
    • 0

1010 1011 1100 1101を左へ2ビットだけシフトさせる(=その値の4倍になる)と 0010 1010 1111 0011 0100 となるはずですが、32ビットのレジスタなら上位の 0010 はオーバーフローしますから、AF34ですね。

    • good
    • 0

なります。

    • good
    • 0

ABCD


1010 1011 1100 1101
2ビット左に『論理シフト』ですよね?
1010 1111 0011 0100
となります。そうすると、答えは、
AF34
になります。

論理シフトとは、
左へシフトした場合は、左端の2ビット分が『切り捨てられ』、
右端の空いた部分に「0」を挿入する。
ということです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報