Esta representación es necesaria para obtener los números negativos. La computadora utiliza un número fijo de bits para la representación de cantidades. Normalmente son múltiplos de ocho, u octetos o bytes:
Tamaño de la representación | Signo | Rango de valores | |
---|---|---|---|
Menor | Mayor | ||
8 b = 1 B (byte) | Con signo | ${\color {red}1}000 0000_2 = -128$ | ${\color {red}0}111 1111_2 = 127$ |
Sin signo | $0000 0000_2 = 0$ | $1111 1111_2 = 255$ | |
16 b = 2 B (word) | Con signo | ${\color {red}1}000 0000 0000 0000_2 = -32,768$ | ${\color {red}0}111 1111 1111 1111_2 = 32,767$ |
Sin signo | $0000 0000 0000 0000_2 = 0$ | $1111 1111 1111 1111_2 = 65,535$ | |
32 b = 4 B (double word) | Con signo | ${\color {red}1}000 ... 0000_2 = -2^{31}=2,147,483,648$ | ${\color {red}0}111 ... 1111_2 = 2^{31}-1=2,147,483,647$ |
Sin signo | $0000 … 0000_2 = 0$ | $1111 … 1111_2 = 2^{32}-1=4,294,967,295$ | |
64 b = 8 B (quad word) | Con signo | ${\color {red}0}111 ... 1111_2 = 2^{63}-1 \approx -9.22337×10^18$ | ${\color {red}0}111 ... 1111_2 = 2^{63}-1 \approx 9.22337×10^18$ |
Sin signo | $0000 … 0000_2 = 0$ | ${\color {red}0}111 ... 1111_2 = 2^{64}-1 \approx 1.84467×10^19$ |
Esta representación es necesaria para obtener los números negativos. La computadora utiliza un número fijo de bits para la representación de cantidades. Normalmente son múltiplos de ocho, u octetos o bytes:
Observaciones:
- El número menor de todas las representaciones SIN signo es 0, todos los bits (positivos) en cero.
- El número mayor de todas las representaciones SIN signo es con todos los bits (positivos) en 1, todos los bits (positivos) en cero. Hay $2^{tama\tilde{n}o}$ posibles valores, pero un valor ya fue utilizado por el cero, por lo que el valor máximo será $2^{tama\tilde{n}o}-1$.
- El número menor de todas las representaciones CON signo es un uno (el bit de signo) seguido de n-1 ceros hasta completar el tamaño de la palabra. El bit de signo ocupa la posición $2^{tama\tilde{n}o-1}$, por lo tanto, el valor será $2^{tama\tilde{n}o-1}$.
- El número mayor de todas las representaciones CON signo es un cero (el bit de signo) seguido de n-1 unos hasta completar el tamaño de la palabra (bits positivos en 1). El bit de signo ocupa la posición $2^{tama\tilde{n}o}$, recuerda que empezamos a numerar desde 0 y ya ocupamos un bit para el signo, por lo tanto, el valor será $2^{tama\tilde{n}o-1}-1$.
- Recuerda que para obtener un número positivo a partir de uno negativo, debemos cambiarle el signo: $x=-(-x)$
Algoritmo para cambiar de signo
- Definir un tamaño de palabra, usualmente es 8, 16, 32 o 64 bits.
- Contar con la representación en binario del número al que se desea cambiar de signo.
- Completar con ceros a la izquierda de la cantidad en binario con el número de ceros necesario para completar el tamaño de la palabra definida en el paso 2.
- Aplicar la operación de complemento a 1: los ceros se convierten en unos y los unos en ceros.
- A la cantidad anterior se le suma 1 (complemento a 2).
- Si la cantidad quedara con más dígitos del tamaño de palabra definido en el paso 2, se eliminan los dígitos que sobran del lado izquierdo.
En este objeto utilizaremos representaciones de 8 bits (8b=1 Byte=1B) para la representación de números con signo.
Ejemplo 1
Obtener el número negativo de 89, en binario.
Base final | |||
2 | |||
Base 10 | 89 | 1 |
|
44 | 0 | ||
22 | 0 | ||
11 | 1 | ||
5 | 1 | ||
2 | 0 | ||
1 | 1 | ||
0 |
$2^7$ | $2^6$ | $2^5$ | $2^4$ | $2^3$ | $2^2$ | $2^1$ | $2^0$ | |
---|---|---|---|---|---|---|---|---|
-128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | |
0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | Dígitos ocupados |
SIGNO | ||||||||
-0 | +64 | +0 | +16 | +8 | +0 | +0 | +1 | =89 |
1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||
1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | Complemento a 1 | |
---|---|---|---|---|---|---|---|---|---|
+ | 1 | Sumar 1 | |||||||
X 0 |
1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | Complemento a 2 (Cambio de signo) |
SIGNO | |||||||||
-128 | +0 | +32 | +0 | +0 | +4 | +2 | +1 | =-89 |
Por lo tanto $-89_{10}=\color{red}{1}0100111_2$ (con una representación de 8 bits)
Ejemplo 2
Transforme el número que acaba de convertir $-89_{10}=\color{red}{1}0100111_2$ de negativo a positivo.
$2^7$ | $2^6$ | $2^5$ | $2^4$ | $2^3$ | $2^2$ | $2^1$ | $2^0$ | |||
---|---|---|---|---|---|---|---|---|---|---|
-128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | |||
1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | Número original | ||
SIGNO | ||||||||||
-128 | +0 | +32 | +0 | +0 | +4 | +2 | +1 | =-89 |
0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||
0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | Complemento a 1 | |
---|---|---|---|---|---|---|---|---|---|
+ | 1 | Sumar 1 | |||||||
X
0
|
0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | Complemento a 2 (Cambio de signo) |
SIGNO | |||||||||
-128 | +64 | +0 | +16 | +8 | +0 | +0 | +1 | =89 |
Por lo tanto $89_{10}=\color{red}{0}1011001_2$ (con una representación de 8 bits)
Nota que regresamos al valor original; y que cuando el número es positivo, el bit de signo (el que se encuentra a la izquierda de la representación) es igual a cero; por el contrario, cuando el número es negativo, este es uno.
Escribe la respuesta correcta en los espacios que corresponden para completar el procedimiento:
Ejercicio 1
Obtener el número negativo de $72_{10}$