Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/08/2014, 23:37
shikamarucb
 
Fecha de Ingreso: febrero-2014
Mensajes: 107
Antigüedad: 10 años, 9 meses
Puntos: 0
Desplazamiento a nivel de bits

Hola a todos tengo algunas dudas acerca de como se maneja el signo de los numeros; tengo entendido que, poniendo un ejemplo, el numero -1 seria en binario 1111; el MSB representa el signo y seria con complento a dos, ~-1+1 esto seria igual a 1 (-1=1111 ~-1=0000), mi pregunta es como sabe el compilador que esta trabajando con -1 y no con 15.

Bueno ahora segun mi logica XD este seria el numero -1 en C++ en una variable int:

10000000000000000000000000000111

si yo hago:

x=-1;

x=x>>8;

Ese numero en binario seria:

11111111100000000000000000000000


pero al hacer cout<<x; me sigue imprimiendo el valor de -1.

Esa es mi duda no se muy bien como se manejan los signos y tengo entendido que esto >> es un desplazamiento aritmetico y que depende del MSb rellena con 1 o con 0.