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.