Hi,
I would like to understand what does the following "<<" does in the following statement?
(ord(msg[i+1]) << 8)
As it is two less than sign, I couldn't find some meaningful response on google:(
thanks.
Hi,
I would like to understand what does the following "<<" does in the following statement?
(ord(msg[i+1]) << 8)
As it is two less than sign, I couldn't find some meaningful response on google:(
thanks.
If n
is an integer, n << 8
is equivalent to n * (2**8)
. The <<
operator is called the left shift operator. It comes from the binary representation of integers, for example 6 is represented as 110
in binary form, and 6 << 3
as 110000
. Other languages use the same convention (in particular the C language, the mother of so many languages).
In python there is no theoretical limit to the size of integers, so that you can write 6 << 1000
and still obtain 6 * 2 ** 1000
. This wouldn't work in languages where integers are limited to 32 bits or 64 bits.
Another feature of python is that the binary operator <<
can be overloaded and have an arbitrary different meaning for user defined data types.
Thank you for the detailed explanation Gribouillis.