C语言中左移(<<)和右移(>>)的理解

<<左移:相当于乘法。a << b = a * (2^b)

举例:

1 << 5,相当于1 × (2^5) = 32

1 << 0,相当于1 × (2^0) = 1

>>右移:相当于除法。a >> b = a / (2 ^ b)

举例:

16 >> 3,相当于16 / (2^3) = 2

与普通 / 相同, 16 >> 5的结果为0