使用按位运算符乘法9

时间:2013-06-16 07:30:41

标签: c bit-manipulation

有人可以告诉我如何使用Bit wise运算符找到9的表。详细说明将不胜感激。

3 个答案:

答案 0 :(得分:2)

向左移位就像是2的乘法。所以2x2x2 = 8然后再次添加原始值(这与做+1相同)= 9

((v<<1)<<1)<<1) + v == (v << 3) + v

答案 1 :(得分: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 <&lt;&lt; 3)+ n

Shift-and-add multiplication

答案 2 :(得分:0)

9是1001 2 ,因此向左移动3次并添加原始值。