Why is 3<<1 == 6 in python?
Possible Duplicate:
Absolute Beginner's Guide to Bit Shifting?
anyone can explain me that operator << or >>
The <<
and >>
operators are bitshift operators. x << 1
shifts all the bits in x
up to the next most significant bit, effectively multiplying by 2. More generally, x << n
shifts the bits up n positions. To understand how this operation works it is easiest to look at the binary representation:
3 0000011 = 3
3 << 1 0000110 = 6
3 << 2 0001100 = 12
3 << 3 0011000 = 24
Similarly the >>
operator shifts the bits down:
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
3, in binary, is 11
and shifted to left one bit is 110
, or 6 in decimal.
Think of a << b
as a * (2 ** b)
>>
is for right-shifting. Think of a >> b
as a // (2 ** b)
It's a shift operator.
http://docs.python.org/reference/expressions.html#shifting-operations
链接地址: http://www.djcxy.com/p/12566.html