Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/02/2005, 11:50
Avatar de ferny
ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 2 meses
Puntos: 55
Te voy a responder el porqué con un ejemplo.

El motivo de eso es que los números se representan generalmente en lo que se llama complemento a 2. El primer bit es un bit de signo (0 para positivo y 1 para negativo). Por ejemplo para numeros positivos de 3 bits:

000 -> 0
001 -> 1
010 -> 2
011 -> 3

Para hacer los números negativos, el complemento a dos hace dos pasos:
- Coger el número en positivo y simplemente negar todos los bits (es lo que se llama complemento a uno).
- Sumar uno.

Por ejemplo, para sacar el -2, lo que haces es:
- Cojo el 2, que es 010, y le niego sus bits: 101
- Le sumo uno: 101 + 001 = 110

Y del resultado, que pueden ser 3 ó 4 bit, cojo sólo los tres de la derecha. Por ejemplo el -0 sería: 000 -> niego -> 111 -> sumo 1 -> 1000 -> cojo los 3 últimos -> 000 (me queda lo mismo, por tanto +0 y -0 son el mismo).

De esta forma para los números negativos queda:

111 -> -1
110 -> -2
101 -> -3

Y si te fijas, falta una combinación, la 100. Esta combinación directamente se la asignamos al -4: 100 en binario es un 4, y como el primer bit es un 1, pues negativo.

Esta representación de números tiene su lógica: para sumar dos cantidades, sean positivas o negativas, se suman bit a bit. Por ejemplo 3 + (-2) = 1 equivale a 011 + 110 = 1|001 (se cogen sólo los tres últimos bit).

Espero que te sirva
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.