Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/03/2015, 04:12
Avatar de Xerelo
Xerelo
 
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: [Java] Consulta codigo

¿Qué hace el operador & con números binarios?

Compara bit a bit, y si los dos son 1 pone un 1.

a= 01001 = 9
&
b= 11000 = 24
=
c= 01000 = 8

En tu caso estás operando con un b 00000...0001

¿dónde puedes tener 1? Teniendo en cuenta que en "b" todo son ceros salvo la última posición...

tu resultado siempre será un 0 salvo que el último bit del primer número "a" sea 1, o lo que es lo mismo tendrás un 1 cuando "a" sea impar y un 0 cuando "a" sea par.

-1431655766&0x01=0
1431655765&0x01=1
715827882&0x01=0
357913941&0x01=1
178956970&0x01=0
89478485&0x01=1
44739242&0x01=0
22369621&0x01=1
11184810&0x01=0
5592405&0x01=1
2796202&0x01=0
1398101&0x01=1
699050&0x01=0
349525&0x01=1
174762&0x01=0
87381&0x01=1
43690&0x01=0
21845&0x01=1
10922&0x01=0
5461&0x01=1
2730&0x01=0
1365&0x01=1
682&0x01=0
341&0x01=1
170&0x01=0
85&0x01=1
42&0x01=0
21&0x01=1
10&0x01=0
5&0x01=1
2&0x01=0
1&0x01=1
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.