20 votos

¿Cómo puedo convertir el complemento a 2 a decimal?

Supongamos que tengo el número negativo en complemento a 2, 1111 1111 1011 0101 (0xFFBB5). ¿Cómo puedo representar esto como un número decimal en base 10?

26voto

Amzoti Puntos 46324

Aquí está el proceso para convertir un número negativo en complemento a dos de nuevo a decimal:

(1) invertir todos los bits,

(2) añadir 1, y

(3) interpretar el resultado como una representación binaria de la magnitud y añadir un signo negativo

Así que, para tu ejemplo, tenemos:

$$1111~1111~1011~0101 \xrightarrow{(1)} 0000~0000~0100~1010 \xrightarrow{(2)} 0000~0000~0100~1011 \xrightarrow{(3)} -75$$

Parece que escribiste el binario incorrecto y quisiste decir:

$$1111~1111~1011~1011~0101 \xrightarrow{(1)} 0000~0000~0100~0100~1010 \xrightarrow{(2)} 0000~0000~0100~0100~1011 \xrightarrow{(3)} -1099$$

Por supuesto, en hexadecimal, puedes invertir todos los bits, sumar 1 y tomar una magnitud negativa.

Saludos

4 votos

Gran esquema de estrategia, y seguido por aplicarlo (combinación perfecta) +1

12voto

Davidenko Puntos 90

Si $x$ es un número de $n$ dígitos escrito en complemento a dos, entonces ${\small\sim}x +1 = -x$, donde ${\small\sim}x$ es el NOT binario de $x$. En tu caso, ~0xFFBB5 + 1 = 0x0044B = 1099, por lo tanto tu número es $-1099$.

8voto

Nerd Puntos 61

Una forma muy sencilla de convertir un número negativo en complemento a 2 a decimal. Supongamos un número 11010110, entonces su representación decimal es, -2^7 + 2^6 + 2^4 + 2^2 + 2^1 = - 128 + 64 + 16 + 4 + 2 = - 42 la idea es la misma que convertir un número binario normal a decimal pero con un signo negativo en el dígito binario más a la izquierda.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X