Ver Mensaje Individual
  #7 (permalink)  
Antiguo 11/08/2011, 22:09
Avatar de Panino5001
Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Duda del Operador NOT(~) a Nivel Bit(bitwise)

El ejemplo que puedo darte es este:
Código PHP:
<script type="text/javascript">
var 
a=5;
var 
b=~a;//-6
alert(b);
alert(~b);//5
</script> 
Pero eso no aclara demasiado.
Los números son infinitos y por lo tanto, es imposible que un sistema finito pueda representarlos. Lo que se intenta, mediante diversos mecanismos, es ampliar lo más posible el conjunto a representar.
Javascript, con esa misma finalidad, usa para representar los números negativos un sistema de representación que se llama Código binario en complemento a dos.
Los números positivos se representan como ya sabés. Pero los negativos, en cambio, se representan cambiando los bits en 1 por cero y viceversa y sumándole un uno al resultado.
Cuando usás el operador not con un número positivo no estás obteniendo un número positivo. Lo que estás obteniendo es el complemento a 1 de ese número, que en realidad corresponde a la representación de un número negativo.

Última edición por Panino5001; 11/08/2011 a las 22:35