Python dice¿Qué significa << representa en python?
1 << 16 = 65536
¿Qué operación hace <<
realiza en Python?
Python dice¿Qué significa << representa en python?
1 << 16 = 65536
¿Qué operación hace <<
realiza en Python?
Es el operador de desplazamiento a la izquierda para Python. Una operación de desplazamiento a la izquierda, como su nombre lo indica, mueve los bits hacia la izquierda.
Suponga que tiene 2 cuya representación binaria es 0010. Así 2<<2
significa para desplazar los bits dos veces a la izquierda:
0010 -> 0100 -> 1000
1000 es la representación binaria de 8. Matemáticamente, el desplazamiento a la izquierda es lo mismo que multiplicar un número por una potencia de 2: a<<b == a*2^b
, pero como la operación se realiza solo por desplazamiento, es mucho más rápido que hacer multiplicaciones.
¿Podría comentar si es o no un buen producto? ¿idea para reemplazar la exponenciación con cambios de bit cuando sea posible? – Genre
@Genre Es una buena idea. Un cambio de bit es generalmente una instrucción de ensamblaje única mientras que la exponenciación puede tomar varios. Las buenas bibliotecas y compiladores pueden intentar optimizar para el caso en el que la base tenga una potencia de 2. Una estafa es que el código se vuelve menos legible (1 << 16 no es legible como 2^16). Por lo tanto, debe evaluar si los ahorros compensan la pérdida de legibilidad. –
<<
es el operador de desplazamiento a la izquierda en Python. Eche un vistazo a documentation para más detalles.
Esto es left shift operator
1<<16
implica 1 para ser desplazado a la izquierda por 16 bits.
Otra forma de pensarlo es 1 por 2^16.
Así que cada vez que vea x < < y lo interpretan como:
x * 2^y
http://wiki.python.org/moin/BitwiseOperators – jeremy
[desplazamiento aritmético] (http://es.wikipedia.org/wiki/Arithmetic_shift) – Buddy
ver http://docs.python.org/reference/expressions.html?highlight=bit%20shift#shifting-operations –