Complemento 2 a Decimal

Pasos a Seguir

Método a mano

  1. Si el bit más significativo es un 0 (positivo)
    1. Pasamos el número a decimal como siempre
  1. Si el bit más significativo es un 1 (negativo)
    1. Le damos la vuelta a todos los bits
    2. Sumamos 1 al resultado
    3. Pasamos el número a decimal como siempre
    4. Añadimos un menos al número obtenido

Truco con calculadora de programador

💡
Quermos convertir un número en complemento a 2 negativo a decimal
  1. El número (B2)(B_2), deberemos extender el bit de signo a un multiplo de 4 bits (4, 8, 12, …) y tomar nota del número (n)(n) de bits que tiene ahora B2B_2
  1. Con la calculadora en modo en binario haremos la siguiente operación 0B20-B_2 (con los bits extendidos)
  1. Truncamos (eliminamos los bits más significativos) el resultado a los nn bits que extendimos anteriormente
  1. Convertiremos ese número a decimal y le añadimos el menos

Ejemplo
Queremos convertir 10 0110 a decimal
  1. Estendemos el bit de signo a un multiplo de 4 (n=8 bitsn = 8 \text{ bits}) → 1110 0110
  1. Calculamos 0 - 1110 0110 = 1111 1111 1111 1111 1111 1111 0001 1010
  1. Truncamos el resultado a (nn) → 0001 1010
  1. Convertimos 0001 1010 a binario y le añadimos en menos → 26-26
 

Ejemplo 1 (positivo) - 01100201100_2

💡
Procedimiento
  1. Como el bit más significativo es 0 (positivo), lo pasamos a decimal como ya sabemos
  1. Convertimos a decimal → 23+22=8+4=122^3 + 2^2 = 8 + 4 = 12
Solución decimal: El número binario puro equivalente es 1212

Ejemplo 2 (negativo) - 11010010211010010_2

💡
Procedimiento
  1. Como el bit más significativo es 1 (negativo)
  1. Damos la vuelta a todos los bits → 0010 1101
  1. Sumamos uno → 0010 1110
  1. Convertimos a decimal → 25+23+22+21=462^5 + 2^3 + 2^2 + 2^1 = 46
  1. Le añadimos el menos → 46-46
Solución decimal: 46-46

Ejemplo 3 (negativo con decimales) - 111101.1101111101.1101

💡
Procedimiento
  1. Como el bit más significativo es 1 (negativo)
  1. Damos la vuelta a todos los bits de la parte entera → 00 0010. 1101
  1. Sumamos uno → 00 0100. 1101
  1. Convertimos a decimal → 22+21+22+24=4.81252^2 + 2^{-1} + 2^{-2} + 2^{-4} = 4.8125
  1. Le añadimos el menos → 4.8125-4.8125
Solución decimal: 4.8125-4.8125