Esta es una duda con respecto a la representación de bits de enteros con signo. Por ejemplo, cuando quiere representar -1, es equivalente al complemento de 2 de (+1). Entonces -1 se representa como 0xFFFFFFF. Ahora cuando cambio mi número por 31 e imprimo el resultado, vuelve como -1.Bits representación de números negativos
signed int a = -1;
printf(("The number is %d ",(a>>31));//this prints as -1
Entonces, ¿alguien puede explicarme cómo se representan los bits para los números negativos?
Gracias.
Mirándolo desde otro ángulo: piense en cualquier desplazamiento a la derecha N-bit (extendiendo la señal) dividiendo por 2^N, redondeando ABAJO (hacia menos infinito, no hacia 0.) Por lo tanto -1 desplazado a la derecha (con signo extensión) cualquier cantidad de veces seguirá produciendo -1. – vladr