Mar*_*ers 32

<<>>运营商的位移操作符.x << 1将所有位移位x到下一个最高有效位,有效地乘以2.更一般地,x << n将位移位n个位置.要了解此操作的工作原理,最简单的方法是查看二进制表示:

3         0000011 =  3
3 << 1    0000110 =  6
3 << 2    0001100 = 12
3 << 3    0011000 = 24
Run Code Online (Sandbox Code Playgroud)

类似地,>>操作员将位移位:

58        0111010 = 58
58 >> 1   0011101 = 29
58 >> 2   0001110 = 14
58 >> 3   0000111 = 7
58 >> 4   0000011 = 3
58 >> 5   0000001 = 1
58 >> 6   0000000 = 0
Run Code Online (Sandbox Code Playgroud)


Gab*_*aru 15

3,二进制,是11和向左移位一位110,或者是十进制的6.

想想a << b作为a * (2 ** b)

>>是为了右移.想想a >> b作为a // (2 ** b)