Cita: Otro método para obtener lo mismo que el operador X & 1 es usar el operador X % 2 que devuelve el residuo de la división, es esta es par devuelve 0 y si es impar 1.
Hola HackmanC, muchas gracias por las respuestas sobre las tablas, ya que con esto puedo observar las cosas de un punto más objetivo, en cuanto a la operación
$variable & 1
vs
$variable % 2
Yo creo que aunque tienes razón, la opción a utilizar en cualquier lenguaje que lo permita sería la primera, por que?
Imagina que el número a comparar se algo grande como 1 305 667, suponiendo el uso de red, procesador o cualquier contexto en que se realice dicha operación, cuando se utiliza el módulo(%), aunque no se nota, lo que hace el programa es rápidamente dividir por el segundo número, y por otro lado ten en cuenta que el sistema binario es natural de los pc's, por lo tanto le queda más sencillo convertir cualquier número a binario y luego compararlo con 1, ya que este en todos los sistemas numéricos se auto representa.
Básicamente la operación módulo(%) sirve para calcular el residuo de casi cualquier operación como por ejemplo:
5 % 3 = 2
6 % 4 = 2
7 % 5 = 2
9 % 6 = 3
Por lo tanto significa que utilizar el % para una operación tan simple como averiguar si un número es par o impar, en programadores avanzados, esto significa solo un desperdicio de recursos y procesos, creo, no estoy seguro de lo que estoy diciendo, leeré algo al respecto, ya que solo estoy deduciendolo por la naturaleza de las operaciones que se tienen que llevar a cabo...
algo sencillo de ver es que al ser una comparación booleana bit a bit, si se hace
5 & 2 = 0
y para 6 & 5
lo cual devuelve 4, (que genio, no?)
Solo quería remarcar el hecho que las operaciones bit a bit, están ahí por algo y que deberían ser la opción principal para programadores avanzados, ya por algo pueden ser de gran utilidad.
saludos!