Foro de elhacker.net

Programación => Java => Mensaje iniciado por: juancaa en 14 Junio 2012, 02:22 am



Título: Que quiere decir esta expresion de Java?
Publicado por: juancaa en 14 Junio 2012, 02:22 am
Al examinar algunas lineas de codigo por internet en Java me encontre con esto:

Código:
int x = (num >> 24) & 100;

Haciendo pruebas he visto que asigna el valor de la derecha a x solo  cuando num es un numero negativo... No entiendo ni que qiueren decir los signos ">>" en esa expresion ni la importancia del numero 24... Alguien me lo puede explicar porfis??

Gracias de antemano.


Título: Re: Que quiere decir esta expresion de Java?
Publicado por: ollo en 14 Junio 2012, 11:40 am
En esta operación, el operador >> desplaza los bits de la variable "num" 24 posiciones a la derecha, y luego hace una operación AND a nivel de bit con el número 100.

Explicación: a nivel binario, los números negativos están formados mayoritariamente por unos, y al hacer una operación AND, se quedan los bits propios del número  100.