Sistemas de numeración

Page 1

Temas Digitales. Sistemas de Numeración.

“ A c o s tú m b r e s e a m a n t e n e r s e al a c e c h o d e l a s i d e a s in t e r e s an te s y n u e v as q u e o tr o s h a n p u e s to e n p r ác t i c a c o n é x i to . S u i d e a t i e n e q u e s e r o r i g i n a l ú n i c a m e n te e n c u an to a s u a d a p t a c i ó n al p r o b l e m a s o b r e e l q u e e s t á bajando.” T H O M A S A L V A E D IS O N , i n v e n to r

Ing. Roberto Pérez Mera


Temas Digitales.

Sistemas de Numeración.

Un sistema numérico es un lenguaje sistemático que consiste de un conjunto de símbolos llamados dígitos, utilizados para la representación de cantidades, con reglas definidas para la suma, multiplicación y otras operaciones matemáticas. La BASE de un sistema numérico especifica el número de símbolos definidos en el sistema. Los sistemas de numeración pueden ser clasificados en dos grupos:

Sistemas de numeración

NO Posicionales.- Cada símbolo definido tiene un valor (peso) fijo, sin importar el lugar que ocupe dentro del número. Un ejemplo clásico de estos sistemas es el sistema de numeración romano. Por ejemplo en el número XIX, los dos símbolos X tienen en mismo valor sin importar que se encuentren en diferentes posiciones. Posicionales.- En un sistema Posicional, cada digito tiene un valor (peso) que depende de la posición que ocupa dentro del número y de la base del sistema. El valor de la posición esta determinado por la posición misma y la base del sistema en cuestión, calculada de la siguiente manera: valor de la posición = Base posición

En los sistemas posicionales en general, los pesos o valores asociados a las posiciones son determinados como se muestran a continuación: Parte entera

Parte decimal

Dígitos

#

#

#

#

Posición

m

2

1

Valor de la posición

Bm

B2

B1

.

#

#

#

0

-1

-2

-n

B0

B-1

B-2

B-n

(MSD)

(LSD)

El dígito colocado en la posición de más valor se indica con las siglas MSD (Most Significant Digit), y el de menos valor con LSD (Least Significant Digit). Existen dos notaciones comunes para representar un número en general, usando como ejemplo un número en base 10 (decimal), tenemos: 1996.38

=

1 *103 + 9 *102 + 9 *101 + 6 *100 + 3 *10-1 + 8 * 10

Notación corta

-2

Notación polinomial

El número N en base r (Nr) puede ser representado como: Nr = A n-1 r n-1 + A n-2 r n-2 + ... + A 1 r 1 + A 0 r 0 + A -1 r -1 + A -2 r -2 + ... Siendo: N = cantidad. n = número de dígitos.

r = base del sistema numérico. A = dígitos del sistema.

Pág. 1

R


Sistemas de Numeración.

Temas Digitales.

La representación polinomial es más formal y la podemos usar para ilustrar cómo los números en base 10 o cualquier otra pueden ser convertidos a su equivalente en el sistema binario. El sistema decimal (base 10) En la aritmética cotidiana usamos números con una base de diez, elección que está casi con certeza relacionada con el hecho de que tenemos diez dedos. Este sistema requiere diez símbolos para representar los valores que cada dígito puede tomar, para lo cual usamos los símbolos 0, 1, 2, ..., 9. Nuestro sistema de numeración es "Posicional" dado que el “valor” de un dígito dentro de un número depende de su posición. Por ejemplo, el número 1234 Significa: 1 millar, más 2 cientos, más 3 decenas, más 4 unidades. El peso de cada posición dentro del número representa una potencia de diez, empezando con las unidades del lado derecho (100=1) y aumentando las potencias de diez conforme nos movemos hacia la izquierda. Entonces nuestro número es: 1234

= ( 1 * 10

Valor del digito

3

)

+ (2 * 10 2 ) + (3 * 10 1 ) + (4 * 10 0 )

1000

200

30

4

Como se dijo anteriormente, los dígitos del lado izquierdo del número son más significativos que los del lado derecho. Es por ello que el término de la izquierda se denomina dígito más significativo, MSD (most significant digit) mientras que al de la derecha se le llama dígito menos significativo, LSD (least significant digit). 1 2 3 MSD

4 LSD

El sistema decimal se puede extender para representar magnitudes que no son cantidades enteras mediante la extensión de la secuencia por debajo de la columna de las unidades, colocando un punto decimal a la derecha de la columna de las unidades para indicar su posición. Entonces: 1234.56 = (1 * 103) + (2 * 102) + (3 * 101) + (4 * 100) + (5 * 10-1) + (6 * 10-2) 1000

200

30

4

0.5

0.06

El sistema Binario (base 2) El sistema de numeración binaria tiene características similares al sistema decimal excepto que el primero tiene una base de dos en vez de diez. Como cada dígito sólo puede tomar ahora uno de dos valores, sólo se requieren dos símbolos. Éstos son en general 0 y 1. Como las magnitudes binarias usan símbolos que también se emplean dentro de los números decimales, es común hacer una distinción entre ellos añadiendo un subíndice que indica la base. Entonces, 11012 es un número binario y 110110 es un número decimal.

Pág. 2

R


Temas Digitales.

Sistemas de Numeración.

Cada dígito binario (bit1) tiene su peso asociado según el lugar que ocupa. En este caso, al ser la base 2, las posiciones dentro del número en vez de estar definidas en potencias de 10 lo están en potencias de 2: Dígitos

#

#

#

#

Posición

m

2

1

Valor de la posición

2m

22

4

.

#

#

#

0

-1

-2

-n

21

20

2-1

2-2

2

1

0.5

0.25

2-n

Se observa que el valor de cada posición se obtiene multiplicando por 2 el que está a su derecha. Por lo tanto, en lugar de tener columnas de unidades, decenas, centenas y millares, como en los números decimales, tenemos columnas de 1, 2, 4, 8, 16... La cantidad binaria 10112 significa que se toma un grupo de 8, ningún grupo de 4, un grupo de 2 y una unidad. Es decir, significa la cantidad once. Esto, expresado matemáticamente, según el polinomio general (notación polinomial): N = 1*23 + 0*22 + 1*21 + 1*20 = 1110 O sea, el número binario 10112 representa la cantidad decimal 1110. Al igual que en el sistema decimal, en el sistema binario pueden aparecer números con parte fraccionaria. Los pesos correspondientes a la parte fraccionaria son: 2-1, 2-2, 2-3, 2-4 ... Siendo: 2-1 =

1 = 0.5 21

2-2 =

1 = 0.25 22

2-4 =

1 = 0.625 24

2-5 =

1 = 0.03125 25

2-3 =

1 = 0.125 23

Teniendo en cuenta los pesos de los dígitos fraccionarios, se puede poner, pues: 2n

24

23

22

21

20

. 2-1

2-2

2-3

...

16

8

4

2

1

. 0.5

0.25

0.125 ...

2-P

Así, el número binario 1101.10110 representado en su notación polinomial da lugar a: 1*23 + 1*22 + 0*21 + 1*20 + 1*2-1 + 0*2-2 + 1*2-3 8

+

4

+

0

+

1

+

0.5

+

0

+ 0.125

=

13.625

Por consiguiente, el número binario 1101.1012 es igual al número decimal 13.62510.

1El término "dígito binario" a menudo se abrevia como bit (del inglés BInary digiT). Entonces, un número binario que consistiera de ocho dígitos se llamaría número de 8 bits.

Pág. 3

R


Sistemas de Numeración.

Temas Digitales.

La posición de la columna de unidades se indica ahora mediante un punto binario (en lugar de un punto decimal) y las columnas a la derecha de este punto representan magnitudes de 1/2, 1/4, ..., 1/(2n). Otros Sistemas Numéricos Aunque existen razones evidentes para usar números tanto decimales como binarios, cualquier entero se puede usar como la base de un sistema numérico. Por razones cuya importancia no nos concierne por ahora, entre los sistemas de numeración comunes se incluyen aquellos que tienen base de 8 (octal) y 16 (hexadecimal o simplemente hex). Los números octales requieren ocho símbolos y usan 0, 1, 2, 3, 4, 5, 6 y 7. Los números hexadecimales requieren 16 símbolos y usan 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F. A partir del análisis anterior sobre números decimales y binarios está claro que: 1238 = 1 * 82 + 2 * 81 + 3 * 80

y que

12316 = 1 * 162 + 2 * 161 + 3 * 160

La tabla siguiente nos da los números del 10 al 20 en decimal, binario, octal y hexadecimal. Decimal 10 11 12 13 14 15 16 17 18 19 20

Binario 1010 1011 1100 1101 1110 1111 10000 10001 10010 10011 10100

Octal 12 13 14 15 16 17 20 21 22 23 24

Hexadecimal A B C D E F 10 11 12 13 14

Conversión de binario a decimal El trabajo con aparatos que incorporen técnicas digitales pueden requerir a veces tener que hacer conversiones entre números binarios a decimales y viceversa. La conversión de binario a decimal resulta especialmente sencilla, teniendo en cuenta los pesos de los dígitos; basta con sumar todos los pesos asociados a los bits que estén a "1". Veamos un ejemplo. Conversión a decimal del número binario: 10101111. Expresándolo en su notación polinomial: 1*27

0*26

1*25

0*24

1*23

1*22

1*21

1*20

128

64

32

16

8

4

2

1

1

0

1

0

1

1

1

1

1*128 +

0*64 +

1*32 +

0*16 +

1*8 +

1*4 +

1*2 +

1*1

128 +

0+

32 +

0+

8+

4+

2+

1

175

Pág. 4

R


Temas Digitales.

Sistemas de Numeración.

Y si se trata de un número con parte fraccionaria, basta tener en cuenta también los pesos de los dígitos fraccionarios. Por ejemplo, el número binario 11101.11 es equivalente al decimal 29.75: 1*24 16 1 1*16 + 16 + 29.75

1*23 8 1 1*8 + 8+

1*22 4 1 1*4 + 4+

0*21 2 0 0*2 + 0+

1*20 1 1 . 1*2 + 2+

1*2-1 0.5 1 1*0.5 + 0.5 +

1*2-2 0.25 1 1*25 0.25

Conversión de decimal a binario La conversión de decimal a binario es en efecto inversa al proceso anterior, aunque la similitud no es evidente en principio. Se logra mediante la división repetitiva del número entre 2 y tomando nota del resto. Este procedimiento se repite hasta que el número desaparece. Para entender mejor esto, veamos un ejemplo. Convierta el número 3710 a binario: 37 / 2 18 / 2 9/2 4/2 2/2 1/2

= = = = = =

18 9 4 2 1 0

residuo residuo residuo residuo residuo residuo

1 0 1 0 0 1

(LSB)

(MSB)

Tomando solo los residuos de cada operación colocando el primero como bit menos significativo, tenemos: 3710 = 1001012 Si pasamos de nuevo a decimal el número binario obtenido (100101) podremos comprobar el resultado: 1*25 32 1 1*32 + 32 + 37

0*24 16 0 0*16 + 0+

0*23 8 0 0*8 + 0+

1*22 4 1 1*4 + 4+

0*21 2 0 0*2 + 0+

1*20 1 1 1*1 1

Conversión de decimal fraccionario a binario Los números con parte fraccionaria se convierten por partes, convirtiendo la parte entera como se indicó antes. La conversión de la parte fraccionaria se realiza multiplicando por 2 dicha fracción, la nueva parte fraccionaria del resultado también se multiplica por 2, así como todas las partes fraccionarias de los resultados que vayan apareciendo. Se sigue así hasta que un resultado no tenga parte fraccionaria o bien hasta la fracción que interese. Las partes enteras de cada uno de los resultados de las multiplicaciones constituyen la parte fraccional del número binario. Veamos un ejemplo. Conversión a binario del número decimal 9.6875. En primer lugar se procede a la conversión de la parte entera y después de la fraccional.

Pág. 5

R


Sistemas de Numeración.

P A R T E

Temas Digitales.

E

9/2 = 4

residuo 1

N

4/2 = 2

residuo 0

2/2 = 1

residuo 0

1/2 = 0

residuo 1

LSB

T E R A

MSB 1 0 0 1 . 1 0 1 1

D P A R T E

0.6875 * 2 = 1 . 375

E C

0.375 * 2 = 0 . 75

I M

0.75

*2=1.5

0.5

*2=1.0

A L

Conversión de hexadecimal a decimal La conversión de hexadecimal a decimal es similar a la conversión de binario a decimal, excepto que se usan las potencias de 16 en lugar de las potencias de 2. Por ejemplo: A01316 = A * 163 + 0 * 162 + 1 * 161 + 3 * 160 = 10 * 4096 + 0 * 256 + 1 * 16 + 3 * 1 = 40960 + 0 + 16 + 3 = 4097910 Importante: Obsérvese que para sustituir el digito A se utiliza el valor 10 que es el valor que le corresponde en el sistema decimal.

Conversión de decimal a hexadecimal La conversión de decimal a hexadecimal es también similar a la conversión de decimal a binario, excepto que las divisiones y multiplicaciones se hacen por 16 en lugar de 2. Por ejemplo, considérese la conversión de 704610 a hexadecimal. 7046 / 16 440 / 16 27 / 16 1 / 16

= = = =

440 27 1 0

residuo residuo residuo residuo

6 (LSB) 8 11 = B 1 (MSB)

704610 = 1B8616 Importante: Obsérvese que al obtener como resto de la división el número 11 (27/16=1 con residuo de 11), en el número hexadecimal, en vez de poner 11 se usa el digito B que es el valor hexadecimal que le corresponde.

Pág. 6

R


Temas Digitales.

Sistemas de Numeración.

Conversiones entre otras bases Las conversiones entre otras bases numéricas y la decimal son similares a las que se describieron para los números binarios y hexadecimales, usando la potencia o factor de multiplicación apropiados. La conversión entre dos bases numéricas no decimales se puede lograr usando la decimal como una etapa intermedia. Esto implica convertir un número de un sistema numérico a forma decimal y luego de decimal al sistema numérico destino. También es posible convertir en forma directa entre dos sistemas numéricos, aunque esto en ocasiones resulta engañoso pues la mayoría de nosotros tiene una fuerte tendencia a pensar en números decimales. Los ejemplos de conversiones directas que son fáciles de lograr incluyen las traducciones de binario a hexadecimal y viceversa. Estas conversiones son sencillas porque cada dígito hexadecimal corresponde a exactamente cuatro dígitos binarios (4 bits). Esto permite que cada dígito hexadecimal se convierta en forma directa. Todo lo que se requiere es conocer el equivalente binario de cada uno de los dígitos hexadecimales y la traducción resulta trivial. Conversión de hexadecimal a binario. A cada símbolo hexadecimal se le asigna su correspondiente combinación binaria. Por ejemplo, el número hexadecimal A9 en binario es: A

9

1010

1001

A916 = 101010012 Otros ejemplos: El número hexadecimal F24C16 en binario es: F

2

4

C

1111

0010

0100

1100

F24C16 = 11110010010011002 Conversión de binario a hexadecimal. Para hacer la conversión de binario a hexadecimal, tenemos que formar grupos completos 4 de bits. Partiendo del punto fraccional hacia la izquierda formamos la parte entera, y a partir del punto fraccional hacia la derecha formamos la parte fraccional. El número binario 111011011000100.110012 en hexadecimal es:

0111

0110

1100

0100

.

1100

1000

7

6

C

4

.

C

8

111011011000100.11001 = 76C4.C816 Importante: Nótese que al organizar los dígitos binarios en grupos de cuatro, en lo grupos extremos si no se completan 4 bits, añadimos ceros para completar (en nuestro ejemplo marcados en negritas y subrayados).

Pág. 7

R


Sistemas de Numeración.

Temas Digitales.

A partir del ejemplo anterior es evidente que los números binarios grandes son difíciles de manejar y de recordar. Como es tan fácil convertir entre binario y hexadecimal, es muy común usar este último sistema para escribir números grandes. 76C4 es mucho más fácil de escribir y recordar que 111011011000100. Aritmética Binaria Una de las ventajas de usar representaciones numéricas binarias en lugar de decimales es que la aritmética es mucho más sencilla. Para ver por qué es cierto esto, sólo se tiene que considerar que para efectuar la multiplicación decimal uno tiene que conocer todos los productos de todos los pares posibles de los diez dígitos decimales. Para efectuar una multiplicación binaria sólo se tiene que saber que: 0 0 1 1

* * * *

0 1 0 1

= = = =

0 0 0 1

Esta sencillez es una característica de todas las formas de aritmética binaria. Operaciones aritméticas con números no signados

Suma binaria 1

La suma binaria se basa en la siguiente 0 0 1 1

+ + + +

0 1 0 1

= = = =

0 1 1 0 y se lleva 1 (acarreo)

+

0 0 0

+

0 1 1

+

1 0 1

+

tabla: 1 1 0

Como se puede observar, cuando se suma 1 + 1 aparece el concepto de acarreo (carry, en inglés). Que consiste en sumar un 1 a la siguiente columna de suma. Es equivalente a cuando en el sistema decimal se suma, 9 +1, se lleva un 1 que se suma a la siguiente cifra. Veamos unos ejemplos: Se procede como en el sistema decimal, de derecha a izquierda, colocando por columnas los bits del mismo peso y sumando el acarreo a la columna de peso inmediatamente superior.

1 0 0 1 1 + 1 0 1 0 1 1 0 1 Bin

0 3 + 1 0 1 3 Dec

1 1 0 0 1 + 0 1 0 1 1 1 1 0 Bin

1 0 9 + 0 5 1 4 Dec

1 0 + 0 1

1 1 1 1

1 1 1 . 0 1 1 0 . 1 1 0 0 . 0 0 1 Bin

Por supuesto, el sistema es extensible a cualquier número de bits.

Pág. 8

R

1 1 ← acarreos 3 . 3 7 5 + 2 . 7 5 0 6 . 1 2 5 Dec


Temas Digitales.

Sistemas de Numeración.

Resta Binaria El proceso de la resta binaria natural se puede resolver de manera similar al de la suma, se basa en la tabla siguiente: 0 0 1 1

-

0 1 0 1

= = = =

1 0 0 0

-

0 1 y se presta 1 (préstamo) 1 0

-

0 1 1

-

1 0 1

-

1 1 0

En el caso de 0 - 1 ocurre algo similar al acarreo en las sumas; se genera un 1 que se lleva a la resta de la siguiente columna. Este bit que se genera se conoce por préstamo (borrow, en inglés). Veamos unos ejemplos: Se procede como en el sistema decimal, de derecha a izquierda, colocando por columnas los bits del mismo peso y llevando el 1 del préstamo a la columna de peso inmediatamente superior.

_ 1 1 1 1 0 1 1 0 1 0 0 1

1 _ 1 5 0 6 0 9

Bin

Dec

1 _ 1 1 0 0 1 0 1 0 0 0 1 0 Bin

← prestamos _ 1 2 1 0 0 2 Dec

Multiplicación binaria La multiplicación de números binarios se hace de la misma manera como la multiplicación de números decimales. Realmente el proceso es más simple, puesto que los dígitos del multiplicador son 0 ó 1, así que estaremos siempre multiplicando por 0 ó 1 y ningún otro dígito. El siguiente ejemplo ilustra: Multiplicación de 1001 por 101. La equivalencia en decimal es: 1001=9 0101=5

}

el resultado debe ser, pues: 9*5 = 45

Los pasos seguidos en el proceso son exactamente los mismos como en la multiplicación decimal. Primero, se examina el LSB del multiplicador; en nuestro ejemplo es un 1. Este 1 multiplica el multiplicando para producir 1001, el cual se escribe como el primer producto parcial. A continuación, se examina el segundo bit del multiplicador, es un 0, así que se escribe 0000 como el segundo producto parcial. Note que este segundo producto parcial está desplazado un lugar a la izquierda relativo al primero. El tercer y último bit del multiplicador es 1, así que el último producto parcial es 1001 desplazado de nuevo una posición a la izquierda. Los tres productos parciales son sumados entonces para producir el producto final.

x 0 1 0 1 0

1 0 1 1 0 0 0 0 1 1 1

0 1 0 1 0 1 0 0 1

multiplicando (9) multiplicador (5) 32 16 1 0 32 + 0 +

8 4 2 1 1 1 0 1 8 + 4 + 0 + 1 = 45 Pág. 9

R


Sistemas de Numeración.

Temas Digitales.

División binaria La división, al igual que en el sistema decimal, se basa en una combinación de operaciones de multiplicar y restar. Veamos unos ejemplos: División de 101101 entre 101. La equivalencia decimal es:

1 0 1 1 0 1 = 45 101=5

}

divisor (5)

el resultado debe ser, pues: 45/5 = 9 con resto de 0.

101

1001 101101 000101 000

cociente (9) resultado dividendo (45) resto (0)

División de 100 entre 101101. La equivalencia decimal es: 1 0 1 1 0 1 = 45 100=4

divisor (4)

}

el resultado debe ser, pues: 45/4 = 11 con resto de 1.

100

1011 101101 00110 0101 001

cociente (11) resultado dividendo (45)

resto (1)

Representación Binaria de Números Signados

Los números binarios se representan por grupos de 1's y 0's en dispositivos de almacenamiento (registro) cada 1 ó 0 representa un bit (BInary digiT), así, en un registro de 6 bits podemos almacenar cualquier número que esté entre 0 y 63: Binario 000000 111111

Decimal 0 63

Esto representa la magnitud del número. Para el manejo de números negativos se requiere de un método adicional para la representación del signo del número (+ o -). Esta representación se hace generalmente por la adición de otro bit al número, al cual se le llama "bit de signo". Por lo regular la convención común que ha sido adoptada es que: 0

representa un número

POSITIVO.

1

representa un número

NEGATIVO.

Pág. 10

R


Temas Digitales.

Sistemas de Numeración.

+

52

BS 0 Bit de signo

El

B5 1

BIT DE SIGNO

B4 1

B3 B2 B1 0 1 0 Magnitud

B0 0

BS 1 Bit de signo

31 B5 0

B4 1

B3 B2 B1 1 1 1 Magnitud

B0 1

se usa para indicar si un número almacenado es positivo o negativo.

Para números positivos, el resto de los bits se usan SIEMPRE para representar la magnitud del número en forma de MAGNITUD VERDADERA (forma binaria directa). Para números negativos, sin embargo, son de uso común tres formas diferentes para representar la magnitud:

1. FORMA DE MAGNITUD

VERDADERA.

REPRESENTACIÓN DE LA MAGNITUD DE NÚMEROS NEGATIVOS.

2. FORMA DEL COMPLEMENTO A 1. 3. FORMA DEL COMPLEMENTO A 2.

♦ Forma de Magnitud Verdadera

La forma de magnitud verdadera es simplemente la representación que se muestra en la figura anterior, donde la verdadera magnitud del número está dada en forma binaria. El primer bit (bit de la izquierda), es el bit de signo, y el resto de los bits indican directamente la magnitud verdadera del número. Como ejemplo, 1111001 representa -57 en la forma de magnitud verdadera (1110012 = 57). ♦ Forma del Complemento a 1

La forma del complemento a 1 de cualquier número binario se obtiene simplemente cambiando cada 0 en el número a un 1 y cada 1 en el número a un 0. En otras palabras, cambie cada bit a su complemento. Por ejemplo, el complemento a 1 de 101101 es 010010 y el complemento a 1 de 011010 es 100101. Cuando números negativos se representan en la forma de complemento a 1, el bit de signo se hace 1 y la magnitud se convierte de la forma binaria verdadera a su complemento a 1. Para ilustrar, el número -57 se representaría como sigue: Bit de signo - 57 = 1 111001 - 57 =

1 000110

(Forma de magnitud verdadera) (Forma de complemento a 1)

NOTE que el bit de signo NO se complementa y se mantiene como 1 para indicar un número negativo. ♦ Forma del Complemento a 2

La forma del complemento a 2 de un número binario se forma simplemente tomando el complemento a 1 del número y añadiendo 1 a la posición del bit menos significativo. El procedimiento se ilustra abajo para convertir 111001 (decimal 57, magnitud verdadera) a su forma de complemento a 2.

Pág. 11

R


Sistemas de Numeración. 1 ↓ 0 + 0

1 1 0 0 1 ↓ ↓ ↓ ↓ ↓ 0 0 1 1 0 1 0 0 1 1 1

Temas Digitales. ← 57 binario en magnitud verdadera Complemente cada bit para formar el complemento a 1 ← 57 en complemento a 1 añada 1 al LSB para formar el complemento a 2 ← 57 en complemento a 2

Bit de signo - 57 = 1 0 0 0 11 1

Así, -57 seria escrito como 1 000111 en la representación de complemento a 2. De nuevo, el bit más a la izquierda es el bit de signo, los otros 6 bits son el complemento a 2 de la magnitud. Las tres formas de representar números negativos están resumidas en la siguiente figura para el número -57. 1 1 1 1 00 1 1 0 0 0 11 0 1 0 0 0 11 1

Magnitud verdadera Complemento a 1 Complemento a 2

Bit de signo

Recuerde, en los tres sistemas: magnitud verdadera, complemento a 1 y complemento a 2; los números positivos están siempre en la verdadera forma binaria con un bit de signo 0. Las diferencias están en la representación de números negativos.

Algunos ejemplos de números positivos y negativos representados en las 3 distintas formas son: +23

-44

+35

-81

-77

Mag. Verdadera

0 10111

1 101100

0 100011

1 1010001

1 1001101

Complemento a 1

0 10111

1 010011

0 100011

1 0101110

1 0110010

Complemento a 2

0 10111

1 010100

0 100011

1 0101111

1 0110011

Las formas complemento a 1 y complemento a 2 son usadas porque, como veremos, su empleo nos permite ejecutar la operación de resta usando sólo la operación de suma. Esto es significativo porque entonces una máquina digital puede usar los mismos circuitos para sumar y restar, realizando por consiguiente un ahorro en espacio y materiales. Conversión de la forma complemento (1 ó 2) a la forma binaria verdadera.

Es una cosa relativamente simple tomar un número que esté en su forma complemento a 1 ó a 2 y convertirlo a su valor binario verdadero. Para ir de complemento a 1 a binario verdadero se requiere simplemente complementar de nuevo cada bit. Par ir de complemento a 2 a binario verdadero se requiere simplemente complementar cada bit y luego añadir 1 al bit menos significativo (LSB). En ambos casos, la conversión de regreso a binario es el mismo proceso que se uso para producir el complemento.

Pág. 12

R


Temas Digitales.

Sistemas de Numeración.

Suma en el sistema de complemento a 2

Ahora se mostrará cómo se ejecuta la operación de adición en la representación en complemento a 2 para los números negativos. En los varios casos a ser considerados, es importante recordar que con la porción del bit de signo de cada número se opera lo mismo que con la parte de magnitud. Caso I. Dos números positivos

La adición de dos números positivos es directa. Considere la suma de +12 y +7.

+ 12 → + + 7 →

1 1 ← 0 0 1 1 0 0 ← + 0 0 0 1 1 1 ← 0 1 0 0 1 1 ←

Acarreos Sumando Sumador Resultado (+19)

Bit de signo.

Note que los bits de signo del sumando y sumador son ambos 0 y que el bit de signo del resultado es 0, indicando que la suma es positiva. Note también que el sumando y sumador se hace que tengan el mismo número de bits. Esto debe hacerse siempre en el sistema de complemento a 2. Caso II. Número positivo y número negativo menor.

Considere la suma de +12 y -7. Recuerde que el -7 estará en la forma de complemento a 2. Así, +7 (0 00111) debe convertirse a -7 (1 11001).

1 1 1 ← + 12 → 0 0 1 1 0 0 ← + - 7 → + 1 1 1 0 0 1 ← 1 0 0 0 1 0 1 ←

Acarreos Sumando Sumador Resultado (+5)

Bit de signo. Este acarreo se desprecia, así que el resultado es 0 00101 (+5)

En este caso el bit de signo del sumador es 1. Note que los bits de signo participan también en el proceso de adición. En efecto, un acarreo se genera en la última posición de la suma, este acarreo se desprecia siempre, así que la suma final es 0 00101, lo cual es equivalente a +5. Caso III. Número positivo y número negativo mayor.

Considere la suma de -12 y +7: - 12 → + + 7 → +

1 ← 1 1 0 1 0 0 ← 0 0 0 1 1 1 ←

Acarreos Sumando

1 1 1 0 1 1 ←

Resultado (-5)

Sumador

Bit de signo.

Pág. 13

R


Sistemas de Numeración.

Temas Digitales.

Aquí la suma tiene un bit de signo 1, indicando un número negativo. Puesto que la suma es negativa, está en la forma de complemento a 2, así que los cinco últimos bits (11011) representan el complemento a 2 de 00101 (equivalente al decimal 5). Así, 1 11011 es equivalente a -5, el resultado correcto esperado. Caso IV. Dos números negativos

+

- 12 → - 7 → +

1 1 ← 1 1 0 1 0 0 ← 1 1 1 0 0 1 ←

Acarreos Sumando

1 1 0 1 1 0 1 ←

Resultado (-19)

Sumador

Bit de signo. Este acarreo se desprecia, así que el resultado es 1 01101 (-19)

El resultado final es de nuevo negativo y está en la forma de complemento a 2 con bit de signo de 1, así que los cinco últimos bits (01101) representan el complemento a 2 de 10011 (equivalente al decimal 19). Así, 1 11011 es equivalente a -19, el resultado correcto esperado. Caso V. Dos números iguales y opuestos.

- 12 → +

+ 12 →

+

1 1 1 1 ← 1 1 0 1 0 0 ←

Acarreos Sumando

0 0 1 1 0 0 ←

Sumador

1 0 0 0 0 0 0 ←

Resultado (+0)

Bit de signo. Este acarreo se desprecia, así que el resultado es 0 00000 (+0)

El resultado es obviamente +0, como se esperaba. Caso de desbordamiento. Suma de dos números que dan como resultado una cantidad que no se puede representar con la cantidad de bits usados en la magnitud.

Considere la suma de +20 y +15.

+ 20 → + + 15 → +

1 1 1 ← 0 1 0 1 0 0 ← 0 0 1 1 1 1 ←

Acarreos Sumando

1 0 0 0 1 1 ←

Resultado erróneo por desbordamiento

Sumador

Bit de signo.

El resultado indica un número negativo, lo cual es un error pues el resultado esperado es +35, pero el 35 es una cantidad que no se puede representar con solo 5 bits, esto provoca el resultado erróneo. Para representar el 35 se necesitan 6 bits, por lo que nuestros datos deberían estar formados con un bit mas es su magnitud, como se muestra a continuación:

Pág. 14

R


Temas Digitales.

Sistemas de Numeración.

+ 20 → + + 15 → +

1 1 1 ← 0 0 1 0 1 0 0 ← 0 0 0 1 1 1 1 ←

Acarreos Sumando

0 1 0 0 0 1 1 ←

Resultado correcto

Sumador

Bit de signo.

Ahora el resultado es el correcto + 35 (0 100011). Para representarlo se necesitaron 6 bits de magnitud más el bit de signo. Resta en el sistema de complemento a 2

La operación de resta usando el complemento a 2 involucra realmente la operación de suma y no es diferente de los varios casos considerados en la sección anterior. Cuando se resta un número binario (el sustraendo) de otro número binario (el minuendo), el procedimiento es como sigue:

minuendo - sustraendo --------------resta

1.

Tome el complemento a 2 del sustraendo, incluyendo el bit de signo. Si el sustraendo es un número positivo, esto lo cambiará a un número negativo en la forma de complemento a 2. Si el sustraendo es un número negativo, esto lo cambiará a un número positivo en la forma binaria verdadera. En otras palabras, estamos cambiando el signo del sustraendo.

2.

Después de tomar el complemento a 2 del sustraendo, se suma al minuendo. El minuendo se mantiene en su forma original. El resultado de esta suma representa la diferencia requerida. El bit de signo de esta diferencia determina si es + o - y si está en la forma binaria verdadera o en forma de complemento a 2.

Consideremos el caso en el cual +5 ha de sustraerse de -7.

1.

Minuendo (-7)

1 11001

Sustraendo (+5)

0 00101

Cambie el sustraendo (incluyendo el bit de signo) a su forma de complemento a 2. sustraendo → 0 1 + 1

2.

1 1 0 1 0 0 0 1 0 1 ←complemento a 1 1 1 1 0 1 1 ←complemento a 2.

Añada el resultado anterior al minuendo. 1 1 1 + 1 1 1

1 1 1 ← acarreos 1 1 0 0 1 ← minuendo 1 1 0 1 1 ← complemento a 2 del sustraendo 1 0 1 0 0 ←resultado negativo en comp. a 2

Cuando el sustraendo es cambiado a su complemento a 2, realmente se hace -5, de tal manera que estamos sumando -5 a -7, lo cual es lo mismo que restar +5 de -7. Esto es lo mismo como en el caso IV de la sección anterior. Cualquier operación de resta, entonces, se convierte en una de suma cuando se usa el sistema del complemento a 2. El resultado del ejemplo está en complemento a dos por ser negativo (bit de signo = 1), 1 10100 = - 5

Pág. 15

R


Sistemas de Numeración.

Temas Digitales.

Multiplicación en el sistema de complemento a 2

Usando la representación de complemento a 2, la multiplicación se efectúa de la manera descrita anteriormente (MULTIPLICACIÓN BINARIA), provisto que tanto el multiplicando como el multiplicador se pongan en forma binaria verdadera. Si los dos números a ser multiplicados son positivos, ya están en forma binaria verdadera y se multiplican como están. El producto resultante es, por supuesto, positivo y es dado un bit de signo 0. Cuando los dos números son negativos, estarán en la forma de complemento a 2. Cada uno es convertido a un número positivo y luego multiplicados. El producto es guardado como un número positivo y se le da un bit de signo 0. Cuando uno de los números es positivo y el otro negativo, el número negativo se convierte primero a una magnitud positiva tomando su complemento a 2. El producto está en forma de magnitud verdadera. Sin embargo, el producto tiene que ser negativo puesto que los números originales son de signo opuesto. En vista de esto, el producto se cambia entonces a la forma de complemento a 2 y recibe un bit de signo de 1.

Pág. 16

R



Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.