2

ShiftRightLogicalが数値を2^nで除算することを読み、それを証明するために以下を実行しました。

srl $t2,$t1,1

  $t1:  10100111  :  167
  $t2:  01010011  :  83

また、ShiftLeftLogicalは2^nで乗算されることを読みました。しかし、これは見せられません。

sll $t2,$t1,1

  $t1:  10100111  :  167
  $t2:  01001110  :  78

ここで何が欠けていますか?

4

3 に答える 3

3

8 ビット型で操作していると推測するので、左シフトされた値がオーバーフローします。

  • (167 * 2) = 334

  • 334% 256 = 78

于 2012-06-26T17:11:19.867 に答える
1

あなたがシフトするとき、あなたは少し捨てています。解は実際には 101001110 ですが、格納できるのは 01001110 だけです (例によると)。

したがって、通常はそうです。レジスタに収まる場合、sll は n^2 で乗算されます。

于 2012-06-26T22:42:10.810 に答える