有人可以告诉我如何使用Bit wise运算符找到9的表。详细说明将不胜感激。
答案 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次并添加原始值。