Respuesta
50 en binario es 11 0010
, desplazamiento a la derecha por 4 rendimientos 11
que es igual a 3.
Ver PHP documentation y Wikipedia.
¿Cuál es el nombre de '>>'? – user198729
Operador de bit a bit. Específicamente, desplazamiento aritmético en el operador de bit a la derecha. – webbiedave
operador de desplazamiento a la derecha –
> > es el operador de desplazamiento a la derecha binario.
Su instrucción desplaza los bits en el valor numérico 50 cuatro lugares a la derecha. Debido a que todos los números enteros están representados en two's complement, esto equivale a 3. Una manera fácil de recordar esto es que un desplazamiento hacia la derecha equivale a dividir por 2, y un desplazamiento hacia la izquierda es lo mismo que multiplicar por 2.
¿No está cambiando? – user198729
Sí, por supuesto, error estúpido. Se corrigió en la respuesta. – driis
Está cambiando, ¿verdad? - lo siento, no pude resistir;) –
Desplaza los bits hacia abajo en cuatro lugares.
50 en binario es 110010.
desplaza hacia abajo cuatro lugares es 11, que es 3.
El operador >>
se llama un operador de binary right shift.
Desplazar los bits a la derecha 4 veces es lo mismo que dividir por dos, cuatro veces seguidas. El resultado, en este caso sería 3.125
. Como 50 es un int, el cambio de bit devolverá el piso de esto, que es 3
.
Dicho de otra manera, 50
es 0b110010
en binario. Shifted 4 veces tenemos 0b11
, que es 3
en decimal.
Como se documenta en php.org, el operador >>
es un operador de desplazamiento a nivel de bits, que desplaza los bits a la derecha:
$ a >> $ b - Desplaza los bits de $ a, $ b hacia la derecha (cada paso significa "dividir por dos")
50 en binario es 110010
, y el operador >>
desplaza esos bits en 4 lugares en su código de ejemplo. Aunque esto sucede en una sola operación, usted podría pensar que es en varios pasos como este:
- Paso 1 -
00011001
- Paso 2 -
00001100
- Paso 3 -
00000110
- Paso 4 -
00000011
Desde binaria 11
es igual a 3
in de Cimal, el código produce 3.
Es posible que desee almohadilla a la derecha con 0 para hacerlo más claro (aunque técnicamente lo mismo, parece que los bits no están cambiando, sino más bien cayendo desde el lado derecho). – Synetech
Gracias por los comentarios, solo actualicé la respuesta para aclarar ambos puntos. –
+1, la mejor explicación para alguien que nunca ha explorado las operaciones bit a bit. –
Arithmetic shift derecho.
Se llama desplazamiento a la derecha. 'Los bits del operando izquierdo se desplazan a la derecha por el número de posiciones del operando derecho. Las posiciones de bit desocupadas a la izquierda se llenan con el bit de signo, y los bits desplazados a la derecha se descartan.
Se puede encontrar información sobre él aquí: http://php.comsci.us/etymology/operator/rightshift.php
El enlace está roto (* "Este nombre de dominio ha expirado." *). –
- 1. ¿Qué significa "=>" en PHP?
- 2. ¿Qué significa '>>>' en javascript?
- 3. ¿Qué significa >> y >>> en Java?
- 4. ¿Qué significa "->"?
- 5. ¿Qué significa -> _ => en Scala/Lift?
- 6. Groovy, ¿qué significa ->
- 7. ¿Qué significa <>?
- 8. ¿Qué significa '=>'?
- 9. ¿Qué significa() => {}?
- 10. ¿Qué significa >> y 0xfffffff8?
- 11. ¿Qué significa ">" en CSS?
- 12. ¿Qué significa -> en F #?
- 13. ¿Qué significa "() =>" en C#?
- 14. ¿Qué significa -> en C++?
- 15. ¿Qué significa() => en C#?
- 16. Scala - ¿Qué significa '=> SomeType'?
- 17. ¿Qué significa el operador>? =?
- 18. ¿Qué significa __PACKAGE __-> {foo}?
- 19. En F #, ¿qué significa el operador >>?
- 20. ¿Qué significa ">>" y "<<" en Javascript?
- 21. ¿Qué significa el símbolo >> en Haskell
- 22. ¿Qué significa la sintaxis de PHP $ var1 -> $ var2?
- 23. ¿Qué significa <> en Python
- 24. ¿Qué significa el símbolo '>' en css?
- 25. ¿Qué significa Map <?, ?> en Java?
- 26. ¿Qué significa "outer =>" en realidad?
- 27. ¿Qué significa la sintaxis '=>' en C#?
- 28. ¿Qué significa <%=h ... %> en Rails?
- 29. ¿Qué significa el operador '=>' en C#?
- 30. ¿Qué significa $ this en realidad?> Codeigniter
Esto se aplica a cualquier idioma con operaciones bit a bit. –