-5

ビット単位の演算子を使用して 9 の表を見つける方法を教えてください。詳細な説明をいただければ幸いです。

4

3 に答える 3

2

左へのビット シフトは、2 の乗算のようなものです。つまり、2x2x2 = 8 で、元の値を再度追加します (+1 を実行するのと同じです) = 9

すなわち

((v<<1)<<1)<<1) + v == (v << 3) + v
于 2013-06-16T07:32:59.877 に答える
2

2 の N 乗 (つまり 2^N) を乗算するには、ビットを N 回左にシフトします。

0000 0001 = 1 

times 4 = (2^2 => N = 2) = 2 bit shift : 0000 0100 = 4

times 8 = (2^3 -> N = 3) = 3 bit shift : 0010 0000 = 32

等..

視覚化する

Times 9はこのように独自の値を追加するだけです

0000 1001    // 9 original value

0001 0000    // 2 shift 3 to left
0000 0010 +  // 2
-----------
0001 0010 = 18

0001 1000    // 3(0000 0011) shift 3 to left
0000 0011 +  // 3
-----------
0001 1011 = 27

0010 0000    // 4(0000 0100) shift 3 to left
0000 0100 +  // 4
-----------
0010 0100 = 36

等..

意味 x = (n<<3)+n

シフト加算乗算

于 2013-06-16T07:53:22.223 に答える
0

9 は 1001 2なので、左に 3 回シフトして元の値を加算します。

于 2013-06-16T07:32:48.780 に答える