algorithm fundamental

文章目录

位运算

十进制转二进制:
如33:

1
2
3
4
5
6
33 / 2 = 16 + 1
16 / 2 = 8 + 0
8 / 2 = 4 + 0
4 / 2 = 2 + 0
2 / 2 = 1 + 0
1 / 2 = 0 + 1

所以二进制为:100001(按照从下到上的顺序)

小数转二进制
如0.1

1
2
3
4
5
6
0.1 * 2 = 0 + 0.2
0.2 * 2 = 0 + 0.4
0.4 * 2 = 0 + 0.8
0.8 * 2 = 1 + 0.6
0.6 * 2 = 1 + 0.2
...

所以二进制为0.0(0011)(按照从上到下的顺序)

左移 <<

可以看成 a * (2 ** b)

右移 >>

可以看成 a / (2 ** b)

右移可以在二分法中取中间值

按位与 &

8 & 7 => 0

按位或 |

8 | 7 => 15

按位异或 ^

每一位不同才会为1

两个数不通过四则运算得出和:

分享到: