Cambio de signo de un número en binario

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

  1. Definir un tamaño de palabra, usualmente es 8, 16, 32 o 64 bits.
  2. Contar con la representación en binario del número al que se desea cambiar de signo.
  3. 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.
  4. Aplicar la operación de complemento a 1: los ceros se convierten en unos y los unos en ceros.
  5. A la cantidad anterior se le suma 1 (complemento a 2).
  6. 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.

Utilice un tamaño de palabra de 8 bits, el séptimo bit corresponde al bit de signo y debe considerarse con valor negativo.
Contar con la representación en binario del número del que se desea cambiar de signo.
Base final
2
Base 10 89 1


44 0
22 0
11 1
5 1
2 0
1 1
0
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.
$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
Aplicar la operación de complemento a 1: los ceros se convierten en unos y los unos en ceros.
1 0 1 0 0 1 1 0
Sumar 1, si queda alguna cantidad fuera de los ocho bits definidos, ignorar los que queden del lado izquierdo.
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.

Utilice un tamaño de palabra de 8 bits, el séptimo bit corresponde al bit de signo y debe considerarse con valor negativo
Contar con la representación en binario del número del que se desea cambiar de signo.
$-89_{10}=\color{red}{1}0100111_2$
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.
$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
Aplicar la operación de complemento a 1: los ceros se convierten en unos y los unos en ceros
0 1 0 1 1 0 0 0
Sumar 1, si queda alguna cantidad fuera de los ocho bits definidos, ignorar los que queden del lado izquierdo.
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.

Escribir
Con los siguientes ejercicios verificarás si aprendiste el procedimiento para obtener cambio de signo de un número en binario para alternar los números entre positivos y negativos.

Escribe la respuesta correcta en los espacios que corresponden para completar el procedimiento:

Ejercicio 1

Obtener el número negativo de $72_{10}$

Es necesario que escribas las respuestas para recibir retroalimentación.
Obteniendo el valor en binario de 72.
Base final
2
Base 10 72 0


36 0
18 0
9 1
4 0
2 0
1 1
0
Utilice un tamaño de palabra de 8 bits, el séptimo bit corresponde al bit de signo y debe considerarse con valor negativo.
Contar con la representación en binario del número del que se desea cambiar de signo.
$72_{10}=\color{red}{0}1001000_2$
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.
$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 0 1 0 0 0 Número original
SIGNO
0 +64 +0 +0 +8 +0 +0 +0 =72
Aplicar la operación de complemento a 1: los ceros se convierten en unos y los unos en ceros.
1 0 1 1 0 1 1 1
Sumar 1, si queda alguna cantidad fuera de los ocho bits definidos, ignorar los que queden del lado izquierdo.
0 0 0 0 0 1 1 1
1 0 1 1 0 1 1 1 Complemento a 1
+ 1 Sumar 1
X
0
1 0 1 1 1 0 0 0 Complemento a 2 (Cambio de signo)
SIGNO
-128 +0 +32 +16 +8 +0 +0 +0 =-72

Por lo tanto $-72_{10}=\color{red}{1}0111000_2$ (con una representación de 8 bits)

Ejercicio 2

Con una representación de 8 bits, ¿cuál es el número negativo de $21_{10}$? 111010112

$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 0 0 1 0 1 0 1 Número original
SIGNO
0 0 0 +16 +0 +4 +0 +1 =21
0 0 0 0 0 0 0 0
1 1 1 0 1 0 1 0 Complemento a 1
+ 1 Sumar 1
X
0
1 1 1 0 1 0 1 1 Complemento a 2 (Cambio de signo)
SIGNO
-128 +64 +32 +0 +8 +0 +2 +1 =-21

Ejercicio 3

¿Cuál es número negativo de $11010110_2$ con una representación de 8 bits? 4210

$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 1 0 1 0 1 1 0 Número original
SIGNO
-128 +64 0 +16 +0 +4 +2 +0 =-42
0 0 0 0 0 0 0 1
0 0 1 0 1 0 0 1 Complemento a 1
+ 1 Sumar 1
X
0
0 0 1 0 1 0 1 0 Complemento a 2 (Cambio de signo)
SIGNO
+0 +0 +32 +0 +8 +0 +2 +0 =42