Representación de números con signo

Las representaciones de números con signo se utilizan para resolver el problema de la representación de enteros negativos en binario. El problema de intentar almacenar el signo negativo (-) de un número binario es que no hay estados que se puedan utilizar para representar la asignación negativa. No es posible utilizar simplemente "off" para el signo menos y "on" para el signo más, porque el ordenador no tendría forma de saber si se trata de un dígito o de un signo.

Para superar este problema, los diseñadores de ordenadores inventaron dos métodos para almacenar números binarios negativos: signo y magnitud y complemento a 2. Estos métodos producen representaciones alternativas para los números con signo.

Signo y magnitud

El signo y la magnitud funcionan cambiando el bit más significativo (MSB - el primer dígito) a un 1 si el número es negativo, y reduciendo el número en uno, por ejemplo:

0000 0010 (2)

se convertirá en...

1000 0010 (-2)

Este método de almacenar números binarios negativos no funciona porque:

  • La aritmética binaria no funciona.
  • Primero debemos saber qué mecanismo de almacenamiento utiliza el compilador de un determinado lenguaje.

Complemento a 1

El complemento de 1 funciona intercambiando 1s por 0s y los 0s por 1s, por ejemplo:

0000 0010 (2)

se convertirá en...

1111 1101 (-2)

Al igual que el método de signo y magnitud, se define fácilmente como un número negativo porque su bit más significativo es 1

Complemento a 2

El complemento a 2 es una forma más difícil de almacenar los negativos. Hay tres pasos para ello:

  1. Encuentre el número binario positivo (por ejemplo, 8base 10 = 0000 1000base 2).
  2. Cambia los 1s por 0s y los 0s por 1s (por ejemplo, 0000 1000base 2 se convierte en 1111 0111base 2).

Esto se conoce como "voltear los bits", o aplicar el NOT lógico a la representación original de base 2.

  1. Suma 1 (por ejemplo, 1111 0111base 2 + 1base 2 = 1111 1000base 2).

Este método gusta porque:

  • Es como el signo y la magnitud; un número negativo comienza con un 1 y un número positivo con un 0.
  • La aritmética binaria funcionará.
  • Sólo hay un valor para el 0 (0000 0000base 2).

AlegsaOnline.com - 2020 / 2023 - License CC3