Fundamentos sistemas digitales cap 2

36
e ~~mc~;~~:~~s ~~;i~~~:utadora El tutorial de Electronics Workbench (EWB) se encuentra en la dirección http://www.prenhall.comlfloyd 2.11 Números decimales 2.2 Números binarios 2.3 Conversión decimal-binario 2.4 Aritmética binaria 2.5 Complemento a 1 y complemento a 2 de los números binarios 2.6 Números con signo 2.7 Operaciones aritméticas de números con signo 2.8 Números hexadecimales 2.9 Números octales 2.10 Código decimal binario (BCD) 2.11 Códigos digitales y paridad 2.12 Aplicación a los sistemas digitales ,:_; SISTEMAS DE " NUMERACION, OPERACIONES y " CODICOS 2

Transcript of Fundamentos sistemas digitales cap 2

Page 1: Fundamentos sistemas digitales   cap 2

e ~~mc~;~~:~~s~~;i~~~:utadoraEl tutorial de Electronics Workbench (EWB)se encuentra en la direcciónhttp://www.prenhall.comlfloyd

2.11 Números decimales2.2 Números binarios2.3 Conversión decimal-binario2.4 Aritmética binaria2.5 Complemento a 1 y complemento a 2

de los números binarios2.6 Números con signo2.7 Operaciones aritméticas de números

con signo2.8 Números hexadecimales2.9 Números octales2.10 Código decimal binario (BCD)2.11 Códigos digitales y paridad2.12 Aplicación a los sistemas digitales

,:_;

SISTEMAS DE"NUMERACION,

OPERACIONES y"CODICOS

2

Page 2: Fundamentos sistemas digitales   cap 2

Esta aplicación a un sistema digital ilustra los conceptosque se enseñan en este capítulo. Para mostrar cómo seusan en una aplicación los códigos y números binarios,se usa como ejemplo el sistema de control y contador de

pastillas que se ha introducido en el Capítulo l. En laSección 2.12, "Aplicaciones a los sistemas digitales",se examinarán los códigos y números binarios envarios puntos del sistema y se verá cómo pasa el siste­ma a través de un ciclo de recuento. Se analizará el sis­tema para determinar los estados binarios para ciertascondiciones específicas.

• APLICACiÓN A LOSSISTEMASDIGITALES

APLICACiÓN A LOS SISTEMASDIGITALES • 51

El sistema de numeración binario y los códigosdigitales son fundamentales en lascomputadoras y, en general, en la electrónicadigital. Este capítulo está enfocadoprincipalmente al sistema de numeraciónbinario y sus relaciones con otros sistemas denumeración tales como el decimal, hexadecimaly octal. Se cubren las operaciones aritméticascon números binarios, con el fin deproporcionar unabase para entender cómo

trabajan las computadoras y muchos otros tiposde sistemas digitales. También se abordancódigos digitales tales como el código decimalbinario (Binary Coded Decimal, BCD), elcódigo Gray y el código ASCII. Se introduce elmétodo de paridad para la detección de erroresen los códigos. Las sugerencias sobre el uso dela calculadora en determinadas operacionesestán basadas en las calculadoras TI-8S y TI-86.Los procedimientos mostrados pueden variar enotros tipos de calculadoras.

• INTRODUCCiÓN

50 • SISTEMAS DE NUMERACiÓN, OPERACIONES Y CÓDIGOS

Page 3: Fundamentos sistemas digitales   cap 2

* En estos consejos se ha usado la calculadora TI-8S.

Problema relacionado. Determinar el valor de cada dígito en el número 67,924.

= (5 X 102) + (6 X 101) + (8 x 10°) + (2 x 10-1) + (3 x 10-2)=(5xlOO)+(6x10) +(8xl) + (2 x 0,1) +(3xO,Ol)= 500 + 60 + 8 + 0,2 + 0,03

568,23

Expresar el número decimal 568,23 como suma de los valores de cada dígito.

Solución. El dígito 5 de la parte entera del número tiene un peso de 100, es decir 102;el dígito 6 tiene un peso de 10, qu~ corr~sp?nde a 101; el dígito 8 tien~ un P_~~ode 1"q~ees 100: el dígito 2 de la parte fraccionaria tiene un peso de 0,1, es decir 10 , y el dígito3 tíene un peso de 0,01, que es 10-2•

EJEMPLO 2.2

Problema relacionado. Determinar el valor de cada dígito en el número 939.

47 = (4 x 101) + (7 x 10°)""(4 x 10) + (7 xl) = 40 + 7

Expresar el número decimal 47 como suma de los valores de cada dígito.

Solución. Como indican sus respectivas posiciones, el dígito 4 tiene un peso de 10,que es 101• El dígito 7 tiene un peso de 1, que corresponde a 10°.

EJEMPLO 2.1

El valor de un número decimal es la suma de los dígitos después de haber mul­tiplicado cada dígito por su peso, como ilustran los ejemplos 2.1 y 2.2.

NÚMEROS DECIMALES • 53

102 lO' 10°,10-1 10-2 10-3 •••

t_ Coma decimal

Para números fraccionarios, los pesos son potencias negativas de diez que aumentande izquierda a derecha, comenzando por 1O-l.

La posición de cada dígito en un número decimal indica la magnitud de la can­tidad representada, y se le puede asignar un peso. Los pesos para los números enterosson potencias positivas de diez, que aumentan de derecha a izquierda, comenzandopor 10° "" 1.

+

En esta posición el dígito 2 En esta posición el dígito 3tiene un peso de 10. ~ _¡---- tiene un peso de 1.

2 3r----,I L_____,J -1-

+ ~~p,.j'rI

En el sistema de numeración decimal cada uno de los diez dígitos, de Ohasta 9, repre­senta una determinada cantidad. Los diez símbolos (dígitos) no se limitan a expresarsolamente diez diferentes cantidades, ya que usamos varios dígitos en las posicionesadecuadas dentro de un número para indicar la magnitud de la cantidad. Puede expre­sar cantidades hasta nueve antes de quedarse sin dígitos: si se desea expresar una can­tidad mayor que nueve, se usan dos o más dígitos, y la posición de cada uno de ellosdentro del número le dice la magnitud que representa. Por ejemplo, si desea escribir lacantidad veintitrés, usará (en sus respectivas posiciones dentro del número) el dígito 2para representar la cantidad de veinte, y el dígito 3 para representar la cantidad tres,tal y como se ilustra a continuación

Todos estamos familiarizados con el sistema de numeración decimal porque usamoslos números decimales cada día. Aunque los números decimales son triviales, amenudo, su estructura de pesos no se comprende. En esta sección, revisaremos laestructura de los números decimales. Esta revisión le ayudará a entender másfácilmente la estructura del sistema de numeración binario, que es tan importante enlas computadoras y la electrónica digital.

Al finalizar esta sección, el lector deberá ser capaz de:

- Explicar por qué el sistema de numeración decimal es un sistema de pesos. _ Definirpotencias de diez. - Determinar el peso de cada dígito en un número decimal.

2.1 • NÚMEROS DECIMALES

52 - SISTEMAS DE NUMERACiÓN, OPERACIONES Y CÓDIGOS

Page 4: Fundamentos sistemas digitales   cap 2

Ejemplo de aplicación

Aprender a contar en binario le ayudará a entender básicamente cómo ?ueden utili­zarse los circuitos digitales para contar sucesos. Puede tratars~ de cualquier cosa, des­de elementos que contar en una línea de montaje hasta operaciones de recuen~o en unacomputadora. Tomemos un sencillo ejemplo para contar las ~elotas de tems que sedesplazan por una cinta transportadora hasta meterse en una caja. Supongamos que encada caja se introducen nueve pelotas.

Con seis bits (n == 6) se puede contar desde °hasta sesenta y tres.

26-1 == 64-1 == 63

En el ~péndice B se facilita una tabla con las potencias de dos.

TABlA 2.1

O O OO O O

2 O O O3 O O4 O5 O6 O O7 O8 O910 O1112 O13 ~1••14 O15 E~

NÚMEROS BINARIOS • 55

Por ejemplo, con cinco bits (n == 5) se puede contar desde °hasta treinta y uno.

25-1 == 32-1 == 31

Para aprender a contar en el sistema binario, en primer lugar, hay que observar cómocontarnos en el sistema decimal. Empezamos en cero y contamos hasta nueve antes dequedarnos sin dígitos. Luego, comenzamos con otra posición de dígito (a la izquier­da) y contarnos desde 10 hasta 99. En este punto, se terminan todas las combinacionescon dos dígitos, por lo que es necesaria una tercera posición de dígito para contar des­de 100 hasta 999.

Cuando contarnos en binario se produce una situación comparable, excepto queahora sólo tenemos dos dígitos, llamados bits. Empecemos a contar: 0, 1. Hasta aquí,ya hemos usado los dos dígitos, por lo que incluimos otra posición de dígito y conti­nuamos: 10, 11.Ahora, hemos agotado todas las combinaciones de dos dígitos, por loque se requiere una tercera posición. Con tres dígitos podemos continuar contando:100, 101, 110 Y 111. Para continuar, necesitarnos una cuarta posición de dígito, y asísucesivamente. En la Tabla 2.1 se muestra cómo se cuenta de cero hasta quince.Observe la alternancia de ls y Osen cada columna.

Como puede verse en la Tabla 2.1, se requieren cuatro bits para contar desdecero hasta 15. En general, con n bits se puede contar hasta un número igual a 2n-l.

Contar en binario

El sistema de numeración binario es simplemente otraforma de representarmagnitudes. El sistema binario es menos complicado que el sistema decimal ya quesólo tiene dos dígitos. Al principio puede parecer más complicado por no ser familiar.El sistema decimal con sus diez dígitos es un sistema en base diez, el sistema binariocon sus dos dígitos es un sistema en base dos. Los dos dígitos binarios (bits) son 1yO.La posición de un 1o un Oen un número binario indica su peso, o valor dentro delnúmero, así como laposición de un dígito decimal determina el valor de ese dígito.Los pesos de un número binario están basados en laspotencias de dos.

Al finalizar esta sección, el lector deberá ser capaz de:

• Contar en binario. - Determinar el mayor número decimal que se puede representarcon un número dado de bits. - Convertir un número binario en un número decimal.

2.2 • NÚMEROS BINARIOS

54 • SISTEMAS DE NUMERACIÓN, OPERACIONES y CÓDIGOS

Page 5: Fundamentos sistemas digitales   cap 2

0.1011= 2-1 + 2-3 + 2-4= 0,5+ 0,125 + 0,0625 = 0,6875

Problema relacionado. Evaluar el número binario 10,111en decimal.

Peso:Número binario:

Convertir el número binario fraccionario 0,1011 en decimal.

Solución. En primer lugar, se determina el peso de cada bit que está a 1, y luego sesuman los pesos para obtener la fracción decimal.

EJEMPLO 2.4

Convertir el número entero binario 1101101a decimal.

Solución. Se determina el peso de cada bit que está a 1,y luego se obtiene la suma delos pesos para obtener el número decimal.

Peso: 26 25 24 23 22 21 2°Número binario: 1 1 O 1 1 O 1

1101101 = 26 + 25 + 23 + 22 + 2°= 64 + 32 + 8 + 4 + 1 = 109

Problema relacionado. Convertir el número binario 10010001 a decimal. .

EJEMPLO 2.3

El valor decimal de cualquier número binario se puede determinar sumando los pesosde todos los bits que son 1, y descartando los pesos de todos los bits que son O. Losdos ejemplos siguientes ilustran esto.

Conversión binario a decimal

128 48 1/640,015625

1/16 1/320,0625 0,03125

1/80,125

1/2 1/40,5 0,25

2163264256

TABLA 2.2Pesos binarios

En la Tabla 2.2 se muestran las potencias de dos y su equivalente decimal de unnúmero entero binario de 8 bits y de un número fraccionario binario de 6 bits.Obsérvese que el peso se duplica para cada potencia de dos y se divide por dos paracada potencia negativa de dos. Puede ampliar fácilmente esta tabla duplicando el pesode la potencia positiva de dos más significativa y dividiendo por dos el peso de lapotencia negativa de dos menos significativa; por ejemplo, 29 = 512 y 2-7 = 0,0078125.

NÚMEROS BINARIOS • 57

2/1-1... 23 22 21 2°,2-1 2-2 ... 2-"

t_ Coma binaria

donde n es el número de bits a partir del punto binario. Luego todos los bits a laizquierda de la coma binaria tienen pesos que son potencias positivas de dos, comopreviamente se estableció. Todos los bits a la derecha de la coma binaria tienen pesosque son potencias negativas de dos, o pesos fraccionales.

Un número binario es un número con peso. El bit más a la derecha es el bit menos sig­nificativo (LSB, Least Significant Bit) en un número entero binario y tiene un peso de2° = 1.Los pesos de los respectivos bits crecen de derecha a izquierda según las poten­cias de dos. El bit más a la izquierda es el bit más significativo (MSB, MostSignificant Bit), y su peso depende del tamaño del número binario.

Los mimeros con parte fraccionaria también se pueden representar en binario,colocando bits a la derecha del punto binario, del mismo modo que los dígitos deci­males fraccionarios se colocan a la derecha del punto decimal. En un número binariocon parte fraccionaria, el bit más a la izquierda es el MSB, y tiene un peso de 2-1 = 0,5.Los pesos fraccionarios de los respectivos bits decrecen de izquierda a derecha segúnlas potencias negativas de dos.

La estructura de pesos de un número binario es:

Laestructura de pesos de los números binarios

FIGURA 2.1Ilustracién de una aplicación de recuento binario.

'c- i!( .•.. 1--=:::0 :=o==()=o=:::o===()=:o:::.:::.....:::.?Jl=-_1 _1_"-:::! :..J[QJ [] ~ GJ [9](5] [EJ [] [8} ~ mUU'-¡!!ilI-m;¡-_-IfiII--_ llI!i l1li :

§ 1"' I't= ~r1-- .:

Primera pelotaunda pelota\ Novena pelota

_ h_---_h_

El contador mostrado en la Figura 2.1 cuenta los pulsos procedentes de un sen­sor que detecta el paso de una pelota y genera una secuencia de niveles lógicos (ondasdigitales), en cada una de sus cuatro salidas paralelas. Cada conjunto de niveles lógi­cos representa un número binario de 4 bits (ALTO (H) = 1 YBAJO (L) =O), como seindica. Cuando el decodificador recibe estas formas de onda, decodifica cada conjun­to de 4 bits y lo convierte en el correspondiente número decimal en el display de sie­te segmentos. Cuando el contador alcanza el estado binario 1001, ha contado nuevepelotas de tenis, y el display muestra el decimal 9, una nueva caja se desplaza por lacinta transportadora, el contador se pone de nuevo en su estado cero (0000) y el pro­ceso comienza de nuevo. El número 9 sólo se ha utilizado en interés de la simplicidadque ofrece un único dígito.

56 • SISTEMAS DE NUMERACiÓN, OPERACIONES Y CÓDIGOS

Page 6: Fundamentos sistemas digitales   cap 2

Convertir los siguientes números decimales en números binarios:

(b) 45(a) 19

EJEMPLO 2.6

L.LSBMSB_j

Resto

_l = O2

~Parar cuando la parteentera del cociente sea O

2-= 1

~

12 = 6

~6-=3

~

Método de la división sucesiva por 2,Un método sistemático para convertir a binario números enteros dec.im~es es ~l pro­ceso de la división sucesiva por 2. Por ejemplo, para convertir a binario el numerodecimal 12, comenzamos dividiendo 12 entre 2. Luego cada cociente resultante sedivide por 2 hasta que se obtiene un cociente cuya parte entera es O. Los .restos ge~e­rados en cada división forman el número binario. El primer resto .es el,blt.m~n?s S.lg­nificativo (LSB) del número binario, y el último resto ~s ~l bit mas significativo(MSB). Este procedimiento, se muestra en los pasos siguientes para convertir elnúmero decimal 12 en binario.

CONVERSiÓN DECiMAL·BINARIO • 59

Problema relacionado. Convertir a binario el número decimal 125.

(a) 12 = 8+4=23+22--------------~1l00(b)25 = 16 + 8 + 1 = 24 + 23 + 2° 11001Ce) 58 = 32 + 16+ 8 + 2 = 25 + 24 + 23 + 21 111010(d) 82 = 64 + 16 + 2 = 26 + 24 + 21 1010010

Solución

(d) 82(e) 58(b) 25(a) 12

Convertir los siguientes números decimales a formato binario:EJEMPLO 2.5

Nueve en binario

Colocando los Is en las posiciones de pesos adecuadas, 23 y 2°, Y los Osen las posi­ciones 22 y 21, se determina el número binario correspondiente al decimal 9:

23 22 21 2°1 O O 1

9=8+1 o

Una forma de calcular el número binario equivalente a un número decimal dado esdeterminar el conjunto de pesos binarios, cuya suma es igual al número decimal. Unaforma fácil de recordar los pesos binarios es que el peso más bajo es 1, es decir 2°, yque duplicando cualquier peso, se obtiene el siguiente peso superior; por tanto, la lis­ta de los siete primeros pesos binarios sería: 1,2,4,8, 16,32,64, como se aprenderáen la última sección. El número decimal 9, por ejemplo, puede expresarse como lasuma de los pesos binarios siguientes:

Método de la suma de pesos

Al finalizar esta sección, el lector deberá ser capaz de:

• Convertir a binario un número decimal utilizando el método de la suma de pesos.• Convertir a binario un número decimal entero utilizando el método de la divisiónsucesiva por dos. • Convertir a binario un número decimal con parte fraccionariautilizando el método de la multiplicación sucesiva por dos.

En la Sección 2.2 hemos estudiado cómo convertir un número binario en el númerodecimal equivalente. Ahora vamos a aprender dos métodos para convertir un númerodecimal en un número binario.

2.3 • CONVERSiÓN DECIMAL-BINARIO

58 • SISTEMAS DE NUMERACiÓN, OPERACIONES Y CÓDIGOS

Page 7: Fundamentos sistemas digitales   cap 2

Las cuatro reglas básicas para sumar dígitos binarios son:

Suma binaria

La aritmética binaria es esencial en todas las computadoras digitales y en muchosotros tipos de sistemas digitales. Para entender los sistemas digitales, debe conocer losprincipios básicos de la suma, sustracción, multiplicación y divis~ónbinarias: En estasección se hace una introducción, que será ampliada en las secciones postenores.

Al finalizar esta sección, el lector deberá ser capaz de:

• Sumar números binarios. - Restar números binarios. - Multiplicar númerosbinarios. - Dividir números binarios.

0,50 X 2 = 1,00o___'

Continuar hasta obtener el número de posiciones Tdecimales deseadas, o parar cuando la palie ::._____jfraccional sea toda cero.

0,25 X 2 = 0,50'--'

10,625 X 2 = 1,25

'--'

0,3125 X 2 = 0,625:r

es;

~h1L----------'~.

MSB~ ¡-LSBo

parte fraccional resultante del producto por 2, hasta que el producto fraccionario seacero o hasta que se alcance el número deseado de posiciones decimales. Los dígitosacarreados, o acarreos, generados por las multiplicaciones dan lugar al número bina­rio. El primer acarreo que se obtiene es el MSB, y el último acarreo es el LSB. Esteprocedimiento se ilustra como sigue:

ARITMÉTICA BINARIA • 61

Suma de pesos. El método de la suma de pesos se puede aplicar a números deci­males fraccionarios, como se muestra en el siguiente ejemplo:

0,625 = 0,5 + 0,125 = 2-1 + 2-3 = 0,101

Lo que indica que en la posición 2-1 hay un 1, en la posición 2--2 un °yen la posición2-3 un 1.

Multiplicación sucesiva por 2. Como hemos visto, los números decimales ente­ros se pueden convertir a números binarios mediante la división sucesiva por 2. Losnúmeros decimales fraccionarios pueden convertirse en números binarios mediante lamultiplicación sucesiva por 2. Por ejemplo, para convertir a binario el número deci­mal fraccionario 0,315, empezamos multiplicando por 2, y después se multip1ica cada

En los Ejemplos 2.5 y 2.6 se han mostrado conversiones de números enteros. Ahora,vamos a ver la conversión de números fraccionarios. Una forma fácil de recordar losp~s~~binarios fraccionarios es que el peso más significativo es 0,5, es decir 2-1, y quedividiendo por dos cualquier peso, se puede obtener el siguiente peso menor; luegouna lista para los cuatro primeros pesos binarios fraccionarios sería 0,5; 0,25; 0,125;0,0625.

Conversión de fracciones decimales a binario

Problema relacionado. Convertir a binario el número decimal 39.

LLSBMSB_j

LLSBMSB_j

9-=4

}--J4-=2

}-J2-= 1

}-J1-=02

~J--____,i~d;l~~I.;l\~.~I!J

45-=22:~22-= 11

~11-=5

~5-=2

}---J2-= 1

}---J1-=02

19- =9

~

Resto(b)(a) Resto

Solución

60 - SISTEMAS DE NUMERACiÓN, OPERACIONES Y CÓDIGOS

Page 8: Fundamentos sistemas digitales   cap 2

Problema relacionado. Restar 101 de 110.

Examinemos detalladamente cómo se ha obtenido la resta de los dos números binarios,ya que es necesario un acarreo negativo. Empezamos por la columna de la derecha.

Columna izquierda: Columna central: AcarreoCuando se acarrea un 1, rnegativo de 1 de la columnaqueda O, luego O - 0=0.\ siguiente que da lugar a 10 en

\ esta columna, luego 10 - 1 = 1.

o;Í 101 Columna derecha:-011 1-1=0O 10 +--__ ___J

EJEMPLO 2.9 Restar 011 de 101.Solucién

Problema relacionado. Restar 100 de 111.

En este ejemplo no se han generado acarreos negativos. El número binario 01 es el mis­mo que el l.

3-2

1

(b) 11-1001

(a) 11 3- 01 - 110 2

EJEMPLO 2.8 Realizar las siguientes sustracciones binarias: (a) 11 - 01 (b) 11 - 10.

Solución

Cuando se restan números, algunas veces se genera un acarreo negativo que pasa a lasiguiente columna de la izquierda. En binario, sólo se produce acarreo negativo cuan­do se intenta restar 1 de O. En este caso, cuando se acarrea un 1 a la siguiente colum­na de la izquierda, en la columna que se está restando se genera un 10, y entonces debeaplicarse la última de las cuatro reglas enumeradas. Los Ejemplos 2.8 y 2.9 ilustran laresta binaria, y se muestra también la resta decimal equivalente.

Las cuatro reglas básicas para la resta de números binarios son:

Resta binaria

ARITMÉTICA BINARIA • 63

5-32

101-011010

(a) 11 3 (b) 100 4 (e) 111 7 (d) 110 6+11 +3 + 10 +2 + 1 +3 + 100 + 4110 6 110 6 1010 10 1010 10

Problema relacionado. Sumar 1111y 1100.

Solución. La suma decimal equivalente se muestra también como referencia.

(d) 110+ 100Sumar los siguientes números binarios:(a) 11+ II (b) 100 + 10 (e) 111+ 11

EJEMPLO 2.7

El Ejemplo 2.7 ilustra la suma binaria.

suma 1con acarreo Osuma O con acarreo 1suma O con acarreo 1suma 1 con acarreo 1

Bits de acarreo ~

lIJL O + O = 01

I!.~;~ 1 +0= 10.!tr O+'1 = 10

lI:'H- 1 + 1 = 11::l,~::l .

En la columna de la derecha 1 + 1 = O con acarreo 1, que pasa a la siguientecolumna de la izquierda. En la columna central, 1 + 1 + O = O con acarreo 1que pasa a la siguiente columna de la izquierda. y en la columna de la izquierda'1+0+0=1. '

Cuand? existe ~n acarreo igual al, se produce una situación en la que se debensumar tres bits (un bit de cada uno de los números y un bit de acarreo). Esta situaciónse ilustra como sigue:

1~~:-_",;:

O 1 1+ O O 11 O O

Acarreo Acarreo

Observe que las tres primeras reglas dan lugar a un resultado de un único bit, y la cuar­ta regla, la suma de dos Is, da lugar a 2 en binario (10), Cuando se suman númerosbinarios, teniendo en cuenta la ~lti:na regla se obtiene en la columna dada la suma O yun acarreo de 1que pasa a la sigmente columna de la izquierda, tal y como se mues­tra en la siguiente suma de 11 +1:

62 • SISTEMAS DE NUMERACIÓN, OPERACIONES y CÓDIGOS

Page 9: Fundamentos sistemas digitales   cap 2

FIGURA 2.2Ejemplo de inversores utilizados para obtener el complemento a 1de un número binario.

+++++tt+o o o ¡ o 1

Ejemplo de aplicaciónLa forma más sencilla de obtener el complemento a 1 de un número binario medianteun circuito digital es utilizar inversores en paralelo (circuitos NOT), como muestra laFigura 2.2 para un número binario de 8 bits.

Complemento a 1

Número binario10110010tttttJ,l-J01001101

Obtención del complemento a 1 de un número binario

El complemento a 1 de un número binario se obtiene cambiando todos los ls por Os,y todos los Ospor l s, como se ilustra a continuación:

El complemento a 1y el complemento a 2 de un número binario son importantesporque permiten la representación de números negativos. La aritmética encomplemento a 2 se usa comúnmente en las computadoras para manipular losnúmeros negativos.

Al finalizar esta sección, el lector deberá ser capaz de:

• Pasar un número binario a su formato en complemento a 1. • Pasar un númerobinario a su formato en complemento a 2 utilizando cualquiera de los dos posiblesmétodos.

2.5 • COMPLEMENTO A 1 y COMPLEMENTO A 2. DE LOS NÚMEROS BINARIOS

COMPLEMENTO A 1 Y COMPLEMENTO A 2 DE LOS NÚMEROS BINARIOS • 65

Problema relacionado. Dividir 1100entre 100.

11 3(b) ]0)110 2)6

10 610 O1000

23)66O

10(a) 1] )110

11000

EJEMPLO 2.11 Realizar las siguientes divisiones binarias:(a) 110+ 11 (b) 110+ 10

Solución

La división binaria sigue elmismo procedimiento que la división decimal, como mues­tra el Ejemplo 2.11. Obsérvese que también se facilitan los equivalentes decimales.

División binaria

Problema relacionado. Multiplicar 1101 x 1010.

(a) 11 3 eb) 111 7XlI X3 X 101 x5

ProduCtOS{11 9{ 111 35

parciales ~ Prod~ctos 0001001 parciales + 111

100011

EJEMPLO 2.10 Realizar las siguientes multiplicaciones binarias:(a) 11x 11 eh) 101 x 111

Solución

La multiplicación con números binarios se realiza de la misma forma que con númerosdecimales. Se realizan los productos parciales, desplazando cada producto parcial unaposición a la izquierda, y luego se suman dichos productos. El Ejemplo 2.10 ilustra esteprocedimiento, y muestra como referencia la multiplicación decimal equivalente.

Las cuatro reglas básicas de la multiplicación de bits son las siguientes:

Multiplicación binaria

64 • SISTEMASDE NUMERACiÓN, OPERACIONES y CÓDIGOS

Page 10: Fundamentos sistemas digitales   cap 2

Los sistemas digitales,tales como la computadora, deben ser capacesde manejarnúmeros positivos y negativos. Un número binado con signo queda determinadopor sumagnitud y su signo. El signo indica si un número espositivo o negativo,y la magnitud esel valordel número. Existen tresformatos binados para representar losnúmeros enteroscon signo: signo-magnitud, complemento a 1 y complemento a 2. Los números no enterosy muy grandes o muy pequeños pueden expresarse enformato de comaflotante.

Al finalizar esta sección, el lector deberá ser capaz de:

• Expresar los números positivos y negativos en formato signo-magnitud. • Expresarlos números positivos y negativos en complemento a 1. • Expresar los númerospositivos y negativos en complemento a 2. • Determinar el valor decimal de losnúmeros binarios con signo. • Expresar un número binario en formato de comaflotante.

Para convertir un número en complemento a loen complemento a 2 al formato bina­rio real (no complementado) se usan los dos mismos procedimientos que acabamos dedescribir. Para convertir el complemento a 1 al binario real, se invierten todos los bits.Para convertir el complemento a 2 al binario real, primero se obtiene el complementoa 1 y se suma 1 al resultado obtenido.

FIGURA 2.3Ejemplo de obtención del complemento a 2 de UIl número binario negativo.

()o()oComplemento a 2

Complemento a 1

o()ooNúmero negativo

cada bit (haciendo el complemento a 1) y luego, con él sumador, sumando 1 al com­plemento a 1.

NÚMEROS CON SIGNO • 67

~l complemento a 2 de un número binario negativo puede calcularse utilizandoln_versoresy. un sumador, como se muestra en la Figura 2.3. Ésta ilustra cómo unnumero de bits puede convertirse en su complemento a 2, invirtiendo en primer lugar

Ejemplo de aplicación

Problema relacionado. Calcular el complemento a 2 de 11000000.

101ÜliQtlOi Número binario

¡::;I::~~;n~les ___j01oof7 Complementoa2Estos bits no varían

EJEMPLO 2.13 Calcular el complemento a 2 de 10111000,utilizando el método alternativo.

Solución

Un método alternativo para obtener el complemento a 2 de un número binario esel siguiente:

1. Se empieza por la derecha con el LSB y se escriben los bits como están hastaencontrar el primer 1, incluido éste.

2. Se calcula el complemento a 1 de los bits restantes.

El Ejemplo 2.13 ilustra estos pasos.

Problema relacionado. Determinar el complemento a 2 de 11001011.

Número binarioComplemento a 1Se suma 1Complemento a 2

1011001001001101

+ 101001110

EJEMPLO 2.12 Hallar el complemento a 2 de 10110010

Solución

El Ejemplo 2.12 muestra cómo se calcula el complemento a 2.

Obtención del complemento a 2 de un número binario

El complemento a 2 de un número binario se obtiene sumando 1 al LSB del comple­mento al.

66 • SISTEMAS DE NUMERACIÓN, OPERACIONES y CÓDIGOS

Page 11: Fundamentos sistemas digitales   cap 2

Determinar el valor decimal del número binario con signo expresado como signo­magnitud: 10010101.SoluciónLos siete bits de magnitud y sus pesos potencias de dos son los siguientes:

26 25 2" 23 22 21 2°O O 1 O 1 O 1

Sumando los pesos de las posiciones donde hay l s, tenemos16+ 4 + 1 = 21

El bit de signo es 1, por tanto, el número es -21. .Problema relacionado. Determinar el valor decimal del número en formato signo­magnitud 01110111.

El valor decimal de los números con signoSigno-magnitud. Los valores decimales de los números positivos y negativ~s.en el. de signo magnitud se determinan sumando los pesos de todas las pOSICIOnesSIstema e SI - II . . n las quede los bits de magnitud, cuando son Is, e ignorando aque as.posl~lOnes e. °1haya ceros. El signo se determina por medio del examen del bit de SIgnO.El Ejernp O

2.15 ilustra este proceso.

11011000

En el sistema de complemento a 2, -39 se obtiene calculando el complemento a2de +39 (00100111) del siguiente modo:

11011000 Complemento a 1+ 1

11011001 Complemento a 2

Problema relacionado. Expresar +19y -19 en los formatos signo-magnitud, com­plementó a 1y complemento a 2, con 8 bits.

1 / deci 1 -39 como un número de 8 bits en los sistemas signo-Expresar e numero ecimamagnitud, complemento a 1 y complemento a 2.Solución. En primer lugar, escribimos el número binario de 8 bits para +39:

00100111En el sistema signo-magnitud, -39 se obtiene cambiando el bit de signo a 1, y

dejando los bits de magnitud como están. El número es:10100111

En el sistema de complemento al, -39 se obtiene calculando el complemento a]de +39 (00100111):

EJEMPLO2.14

En el sistema del complemento a 2, un número negativo es el comple­mento a 2 del correspondiente número positivo.

NÚMEROS CON SIGNO • 69

lllOOll1

Los números positivos en el sistema del complemento a 2 se representan de la mismaforma que en los sistemas de complemento a 1 y de signo-magnitud. Los númerosnegativos son el complemento a 2 del correspondiente número positivo. De nuevo,usando ocho bits, tomamos -25 y 10 expresamos como el complemento a 2 de +25(00011001), es decir,

Sistema del complemento a 2

En el sistema del complemento a 1, un número negativo es el comple­mento a 1 del correspondiente número positivo.

11100110

Los números positivos en el sistema del complemento a 1 se representan de la mismaforma que los números positivos en el formato signo-magnitud. Sin embargo, losnúmeros negativos son el complemento a 1 del correspondiente número positivo. Porejemplo, usando ocho bits, el número decima1 -25 se expresa como el complemento a1 de +25 (00011001), es decir,

Sistema del complemento a 1

Obsérvese que la única diferencia entre +25 y -25 es el bit de signo, ya que los bits demagnitud representan el binario real tanto para números positivos como negativos.

En el sistema signo-magnitud, un número negativo tiene los mismosbits de magnitud que el correspondiente número positivo, pero el bitde signo es un 1 en lugar de un cero.

00011001

Bit de signo_1 ~Bits de magnitudEl número decimal -25 se expresa así

10011001

Cuando un número binario con signo se representa en formato signo-magnitud, el bitmás a la izquierda es el bit de signo y los bits restantes son los bits de magnitud. Losbits de magnitud son el número binario real (no complementado) tanto para los núme­ros positivos como para los negativos. Por ejemplo, el número decimal +25 se expre­sa, utilizando el sistema de signo-magnitud, como un número binario con signo de 8bits como sigue

Sistema signo-magnitud

El bit más a la izquierda en un número binario con signo es el bit de signo, que indi­ca si el número es positivo Onegativo.

Se utiliza un Opara el signo positivo y un 1 para el signo negativo.

El bit de signo

68 • SISTEMASDE NUMERACIÓN, OPERACIONES Y CÓDIGOS

Page 12: Fundamentos sistemas digitales   cap 2

Para los números con signo en complemento a 2, el rango de valores para núme­ros de n bits es:

Para los ejemplos hemos utilizado números de 8 bits, puesto que la agrupación de 8bits es un estándar en la mayoría de las computadoras, y recibe el nombre especial debyte. Utilizando 8 bits, se pueden representar 256 números diferentes. Combinandodos bytes se obtienen dieciséis bits, y se pueden representar 65.536 números diferen­tes. Combinando cuatro bytes se obtienen 32 bits, y se pueden representar 4,295 x 109números diferentes, y así sucesivamente. La fórmula para calcular el número de com­binaciones diferentes de n bits es:

Rango de representación de los números con signo

A partir de estos ejemplos, se puede deducir una de las razones por las que seprefiere el sistema de complemento a 2 para representar los números con signo: sim­plemente, es que requiere una adición de pesos independientemente de que el númerosea positivo o negativo. El sistema signo-magnitud requiere dos pasos: sumar lospesos de los bits de magnitud y examinar el bit de signo para determinar si el númeroes positivo o negativo. El sistema de complemento a 1 requiere añadir 1 a la suma delos pesos para los números negativos, pero no para los números positivos. También,generalmente, el sistema de complemento a 1 no se utiliza porque son posibles dosrepresentaciones del cero (00000000 o 11111111).

Problema relacionado. Determinar el valor decimal del número en complemento a2: 11010111.

-128 + 32 +8 + 2= -86Sumando los pesos donde hay Is.

(b) Los bits y sus pesos según las potencias de dos para el número negativo son los si­guientes (obsérveseque el bit de signonegativo tiene un peso de -27, es decir, -128):

-27 26 25 24 23 22 21 2°10101010

64 + 16+ 4 + 2 = +86Sumando los pesos donde hay] s.

-27 26 25 24 23 22 21 2°01010110

Solución(a) Los bits y sus pesos según las potencias de dos para el número positivo son los

siguientes:

NÚMEROS CON SIGNO • 71

(b) 10101010.(a) 01010110

comole inar los valores decimales de los números binarios con signo expresados encomp emento a 2:

EJEMPLO 2.17

~o'!'f'emdento a 2. Los valores decimales de los números positivos y negativos ene SlS e~a e complemento a 2 se determinan sumando los pesos de todas las osicio-~:::i~:~~onde haya l~ e i~nOrand? aquellas posiciones donde haya ceros. ~l peso

E . 1 2 ~o en un numero negativo VIene determinado por su valor negativo. Eljemp o .1711ustra esto.

Determinar el valor decimal del número en complemento aProblema relacionado.1: 111010] 1.

-24 + 1 = -23

-]28 + 64 +32 +8 = -24Sumando 1 al resultado, el número fina] es:

Sumando los pesos donde hay ls.

16+ 4 + 2 + 1 = +23

(b) ~os .bits ~ sus,pesos según ~aspotencias de dos para el número negativo son lossigurentes (observeseque el bit de SIgnO negativo tiene unpeso de_27, es decir,-i28):

-27 26 25 24 23 22 21 2°1]101000

Sumando los pesos donde hay ls.

Dletenninar el valor decimal de los números binarios con signo expresados en com­p emento al:(a) 00010111 (b) IlI01000.

Solución

(a) Los bits y sus pesos según las potencias de dos para el número positivo son:

-27 26 25 24 23 22 2J 2000010111

EJEMPLO 2.16

~omple;nentoa 1. Los val?res decimales de los números positivos en el sistemae comp emento a 1.se determinan sumando los pesos de todas las posiciones de bit

donde haya ls: y se 19nora~ aquellas posiciones donde haya ceros. Los valores deci­:.a~s ~e los numeros negativos se determinan asignando el valor negativo al peso delt~~oeEsIIgE~O,y Isum2aln6d.o¡todos los pesos donde haya Is, y añadiendo luego 1 al resul-

. jernp o. 1ustra esto.

70 • SISTEMASDE NUMERACiÓN, OPERACIONES y CÓDIGOS

Page 13: Fundamentos sistemas digitales   cap 2

\11100]0001110001110001000000000000 IEl bit de signo es 1. El exponente desplazado es 10010001 = 145. Aplicando la fór­mula, obtenemos

Número = (-1)1(1.10001110001)(2145--127)= (-1)(1.10001110001)(218) = -1100011100010000000

Este número binario en coma flotante es equivalente a -407.688 en decimal.Dado que el exponente puede ser cualquier número comprendido entre_-126 y+128, pueden expresarse números extremadamente grandes y pequenos .. Unnúmero en coma flotante de 32 bits puede reemplazar a un número entero bina­rio utilizando 129 bits. Dado que el exponente determina la posición de la comabinaria, se pueden representar números que contengan tanto parte entera comoparte fraccionaria.

Existen dos excepciones para el formato de los números en coma flotante: elnúmero 0,0 se representa utilizando sólo ceros, e infinito se representa utilizando sólounos en el exponente y ceros en la mantisa.

A continuación, veamos cómo evaluar un número binario que ya está en forma­to de coma flotante. El método general para determinar el valor de un número en comaflotante se expresa mediante la siguiente fórmula:

Número = (-1)s(1 + F)(2E-127)

. Para ilustrar este método, consideremos el siguiente número binario en coma flotante:

S E F

Suponiendo que se trate de un número positivo, el bit de signo (S) es O.El exponente,12, se expresa como un exponente desplazado añadiéndole 127 (12+127=139) ..EIexponente desplazado (E) se expresa como el número binario 10001011. La n:antIsaes la parte fraccionaria (F) del número binario, ,01l01~010001. Dado ~ue SIempreexiste un 1 a la izquierda de la coma binaria en la expresión de la potencia de dos, nose incluye en la mantisa. El número en coma flotante completo es

1011010010001 = 1,011010010001 X 212

. Los 8 bits de los que consta el exponente representan un exponente desplazado. que se ha obtenido mediante la adición de 127 al exponente real. El pr~pós~to de es~edesplazamiento es poder definir números muy grandes o muy pequenos sin necesi­dad de emplear un bit de signo diferente para el exponente. El expo~ente desplazadopermite emplear un rango de valores para los exponentes comprendido entre -126 y+128.

Para ilustrar cómo un número binario se expresa en formato de coma flotante,utilizaremos como ejemplo el número binario 1011010010001. En primer lugar,podemos expresarlo como 1 más un número binario fraccionario, desplazando .lacoma binaria doce posiciones a la izquierda y multiplicándolo después por la apropia-da potencia de 2.

NÚMEROS CON SIGNO • 73

. En la mantisa °parte fraccionaria, se entiende que el punto binario estará a laIZJuierda.de l~s 23 ~its. Realmente, la mantisa consta de 24 bits, ya que, en cualquiernumero binario, el bit más a la izquierda (más significativo) es siempre un 1. Por tan­to, este 1 se entiende que estará allí aunque no ocupe una posición de bit real.

1 bit 8 bits 23 bitses ¡ Exponente (E) Mantisa (parte fraccionaria,FU

_.------- 32 bits ------~,...

Para representar números enteros muy grandes, son necesarios muchos bits. Tambiénse produce. un p:-oblema cuando se necesita representar números con parte entera yparte fraccionaria, tal como 23,5618. El sistema de numeración en coma flotantebasado en la notación científica, permite representar números muy grandes y númerosmuy pequeños sin aumentar el número de bits, y también sirve para representar núme­ros con parte fraccionaria y parte entera.

Un número en coma flotante (también conocido como número real) tiene dospartes más u~ signo. L~ mantisa es la parte del número en coma flotante que repre­senta la magrntud del numero. El exponente es la parte de un número en coma flotanteq~e r~presenta el número de lugares que se va a desplazar el punto decimal (o puntobinario). .

Un ejemplo de número decimal nos será útíl para comprender el concepto básicode los números en coma flotante. Consideremos un número decimal que, en formatoentero, es 241.506.800. La mantisa es, 2415068 y el exponente es 9. Cuando el enterose expre~a co_moun número en coma flotante, se normaliza desplazando el punto deci­mal a la izquierda de todos los dígitos, de modo que la mantisa es un número fraccio­nario y el exponente es una potencia de 10. Este número en coma flotante se escribe:

0,2415068 x 109

Para los números en coma flotante binarios, el formato definido por el estándar754-.1~~5 ANS~EE puede tomar tres formas: simple precisión, doble precisión yp~eclslOn a~pllada. ~odos ellos utilizan el mismo formato básico excepto por elnumero de bits. Los numeras en coma flotante de simple precisión tienen 32 bits losde doble precisión tienen 64 bits y los de precisión ampliada tienen 80 bits. Vamos ares~~~ir nuestra exposición al formato de los números en coma flotante de simpleprecrsion.

Números binarios en coma ñotente de simple precisión. En el formatoestándar par~ un n~er? binario de simple precisión, el bit de signo (S) es el que se~ncuentra mas a la izquierda, el exponente (E) incluye los siguientes 8 bits y la man­tisa o parte fraccionaria (F) incluye los restantes 23 bits, como se muestra a conti­nuación.

Números en coma flotante

h~biendo en cada caso un bit de signo y n-l bits de magnitud. Por ejemplo, con cuatrobits pueden representarse números en complemento a 2 en el rango de - (23) = -8 has­ta 23 - 1 = +7. Del mismo modo, con ocho bits, se pueden abarcar desde -128 hasta+127; con dieciséis bits se puede ir desde -32.768 hasta +32.767, y así sucesivamente.

72 • SISTEMAS DE NUMERACiÓN, OPERACIONES y CÓDIGOS

Page 14: Fundamentos sistemas digitales   cap 2

11111011 -5+ 11110111 + -9

Acarreo que se descarta --7 ~!'jrll11l 0010 - 14

El bit de acarreo final no se tiene en cuenta. La suma es negativa y, por tanto, está encomplemento a 2. 1

En una computadora, los números negativos se almacenan en formato com? e-mento a 2, por lo que, como puede verse, el procedimiento de suma es muy sencillo:sumar los dos números y descartar cualquier bit de acarreo final.

Condición de desbordamiento (overflow). Cuando se suman dos ~úmeros yelnúmero de bits requerido para representar la suma excede al ~úmero d~ bits ?e lo~ dosnúmeros, se produce un desbordamiento, q~e s~ indica mediante un_bit de SIgno m:~~rrecto Un desbordamiento se puede producir solo cuando ambos numeros son ~O~~tlvos o negativos, El siguiente ejemplo con números de 8 bits ilustrará esta condición.

La suma es negativa y, por tanto, está en complemento a 2.

Ambosnúmeros son negativos:

La suma es positiva y, por tanto, es un número binario real (no complementado).

El número positivo es mayor que el número negativo en valor absoluto:

00001111 15+ 11111010 + -6

d ..~ 00001001 9Acarreo;~que se escarta --7 ,:"

El bit de acarreo final no se tiene en cuenta. La suma es positiva y, por tanto, es unnúmero binario real (no complementado)

El número negativo es mayor que el número positivo en valor absoluto:

00010000 16+ 11101000 + -24

11111000 -8

7+411

00000111+ 00000100

00001011

Suma

Los dos números en una suma se denominan sumandos. El re~ultado es la su~a.Cuando se suman dos números binarios con signo pueden producirse cuatro casos.

1. Ambos números son positivos.2. El número positivo es mayor que el negativo en valor absoluto.3. El número negativo es mayor que el positivo en valor absoluto.4. Ambos números son negativos.

Veamos caso por caso utilizando números con sig~o de 8 bits como ejemplos. Comoreferencia se presentan los números decimales equivalentes.

Ambos números son positivos:

OPERACIONES ARITMÉTICAS DE NÚMEROS CON SIGNO • 75

En la sección anterior, hemos aprendido cómo se representan, en tres sistemasdiferentes, los números con signo. En esta sección, aprenderemos cómo se suman,restan, multiplican y dividen estos números. Puesto que el complemento a 2 es elsistema de representación de números con signo más ampliamente utilizado en lascomputadoras y en los sistemas basados en microprocesador, esta sección se limita acubrir la aritmética en complemento a 2. Los procedimientos que se cubren puedenextenderse a los demás sistemas, si fuera necesario.

Al finalizar esta sección, el lector deberá ser capaz de:

• Sumar números binarios con signo. • Explicar cómo las computadoras sumancadenas de números. - Definir desbordamiento (overflow). _ Restar númerosbinarios con signo. - Multiplicar números binarios con signo utilizando el métododirecto de suma. - Multiplicar números binarios con signo utilizando el método deproductos parciales. - Dividir números binarios con signo.

2.7 • OPERACIONES ARITMÉTICAS DE NÚMEROS CON SIGNO

o 100]1000 10000100010100110000000

I oí looouhlUll1011lOoooooooooooooProblema relacionado. Determinar el valor binario del siguiente número binario encoma tlotante:

3,248 X 104 = 32480 = 1111110111000002 = 1.1l111011100000 X 214

El bit más significativo (MSB) no ocupará una posición de bit, dado que siempre es 1.Por tanto, la mantisa es el número fraccionario binario de 23 bits11 1110 1] 100000000000000 Y el exponente desplazado es

14 + 127 = 141 = 10001 1012

El número en coma flotante completo es

EJEMPLO 2.18 Convertir el número decimal 3,248 x 104 en un número binario en formato de comaflotante de simple precisión.

SoluciónConversión del número decimal a binario.

74 • SISTEMAS DE NUMERACiÓN, OPERACIONES YCÓDIGOS

Page 15: Fundamentos sistemas digitales   cap 2

MultiplicaciónLos números en una multiplicación se denominan multiplicando, multiplicador yproducto. La siguiente multiplicacíón decimal ilustra estos términos:

(a) En este caso, 8 - 3 = 8+ (-3) = 5

00001000 Minuendo (+8)+ 11111101 Complemento a 2 del sustraendo (- 3)

Acarre~ que se descarta ------7'11 00000101 Diferencia (+5)

(b) En este caso, 12 - (-9) = 12+ 9 = 21

00001100 Minuendo (+12)+ 00001001 Complemento a 2 del sustraendo (+9)

00010101 Diferencia (+21)

(e) En este caso, -25 - (+19) = -25 + (-19) =-44

11100111 Minuendo (- 25)+ 11101101 Complemento a 2 del sustraendo (-19)

Acarreo que se descarta'------7111010100 Diferencia (-44)

(d) En este caso, -120 - (- 30) = -120 + 30 = -90

10001000 Minuendo (-120)+ 00011110 Complemento a 2 del sustraendo (+30)10100110 Diferencia (-90)

Problema relacionado. Restar 01000111de 01011000.

Solución. Como en otros ejemplos, se facilitan los equivalentes decimales como refe­rencia.

(b) 00001100 - 11110111(d) 10001000 - 11100010

(a) 00001000 - 00000011(e) 11100111- 00010011

Realizar las siguientes sustracciones de números con signo:

Puesto que la sustracción es sencillamente una suma con el signo del sustraendocambiado, el procedimiento se establece como sigue:

Para restar dos números con signo se calcula el complemento a 2 delsustraendo y se suman descartando cualquier bit de acarreo final.

El Ejemplo 2.20 ilustra el procedimiento de la sustracción.

Veamos otro ejemplo, el complemento a 2 del número negativo 11101101 (-19)es 00010011, que es +19 como demuestra la siguiente evaluación:

16 + 2 +1 = 19

OPERACIONES ARITMÉTICAS DE NÚMEROS CON SIGNO • 77

-128 + 64 +32 +16 + 8 +4 = -4

El signo de un número binario positivo o negativo se cambia calculan­do su complemento a 2.

Por ejemplo, el complemento a 2 de! número positivo 00000100 (+4) es11111100, que es -4, tal como demuestra la siguiente evaluación de suma depesos:

La sustracción es un caso especial de la suma. Por ejemplo, restar +6 (el sustraendo)de +9 (el minuendo) es equivalente a sumar -6a +9. Básicamente, la operación dela sustracción cambia el signo del sustraendo y le suma al minuendo. El resultado deuna sustracción se denomina diferencia.

Sustracción

Problema relacionado. Sumar 00110011, 10111111y 01]00011. Son números consigno.

Solución. Como referencia se proporciona el equivalente decimal.

68 01000100 Sl!-llade los dos primeros+ 27 + 00011011 numeros

95 01011111 Primera suma+ 14 + 00001110 Suma del tercer número

109 01101101 Segunda suma+ 18 + 00010010 Suma del cuarto número

127 01111111 Suma final.

EJEMPLO 2.19 Sumar los números con signo: 01000100, 00011011, 00001110Y00010010.

Signo incorrecto --------'Magnitud incorrecta---------'

En este ejemplo, la suma, 183 requiere ocho bits de magnitud. Puesto que losnúmeros tienen siete bits de magnitud (un bit es el bit de signo), se produce un acarreoen el bit de signo que da lugar a la indicación de desbordamiento.

Suma de números de dos en dos. Ahora vamos a ver la suma de una cadena denúmeros, sumando de dos en dos. Esto se puede conseguir sumando los dos primerosnúmeros, luego se suma el tercer número a la suma de los dos primeros, después sesuma el cuarto número al resultado anterior, y así sucesivamente. Así es como lascomputadoras suman cadenas de números. La suma de números dos a dos se ilustra enel Ejemplo 2.19.

125+ 58

183

01111101+ 00111010

10110111~

76 • SISTEMASDE NUMERACiÓN, OPERACIONES y CÓDIGOS

Page 16: Fundamentos sistemas digitales   cap 2

Pasos 3 y 4. El procedimiento demultiplicación es como sigue. Obsérvese que en estospasos sólo se usan los bits de magnitud.

Paso 2.

El bit de signo del multiplicando es O y el bit de signo del multiplicador es1. El bit de signo del producto será 1 (negativo).Calcular el complemento a 2 delmultiplicador para ponerlo en formato real

11000101 ~ 00111011

SoluciónPaso 1.

Multiplicar los números binarios con signo: 01010011 (multiplicando) y 11000101(multiplicador).

Ahora vamos a ver el método de los productos parciales para la multiplicaciónbinaria. Los pasos básicos del procedimiento son los siguientes:

Paso 1. Determinar si los signos del multiplicando y del multiplicador son iguales odiferentes. Así se determina el signo que tendrá el producto.

Paso 2. Poner cualquier número negativo en formato real (no complementado).PUesto que la mayoría de las computadoras almacenan los números negati­vos en complemento a 2, se requiere la operación de complemento a 2 paraobtener el número negativo en formato real.

Paso 3;· Empezar por el bit del multiplicador menos significativo y generar los pro­ductos parciales. Cuando el bit del multiplicador es 1, el producto parcial esigual al multiplicando. Cuando el bit del multiplicador es O, el producto par­cial es cero. Cada sucesivo producto parcial debe desplazarse un bit a laizquierda.

Paso 4. Sumar cada producto parcial a la suma de los productos parciales anteriorespara obtener el producto final.

Paso S. Si el bit de signo que se había determinado en el paso 1 es negativo, calcularel complemento a 2 del producto. Si es positivo, dejar el producto en forma­to real. Añadir el bit de signo al producto.

El Ejemplo 2.22 ilustra estos pasos.

Puesto que el bit de signo del multiplicando es O, no tiene ningún efecto sobre el resul­tado. Todos los bits del producto son bits de magnitud.

Problema relacionado. Multiplicar 01100001 por 00000110.

Primera vezSegunda vezSuma parcialTercera vezSuma parcialCuarta vezProducto

01001101+ 01001101

10011010+ 01001101

11100111+ 01001101100110100

OPERACIONES ARITMÉTICAS DE NÚMEROS CON SIGNO • 79

Puesto que los dos números son positivos, y ambos están en formato real, el productoserá positivo. El valor decimal del multiplicador es 4, luego hay que sumar cuatro vecesel multiplicando del siguiente modo:

EJEMPLO 2.21 Multiplicar los números binarios con signo siguientes: 01001101 (multiplicando) y00000100 (multiplicador), utilizando el método de suma directa.

Solución

Cuando dos números binarios se multiplican, ambos números deben estar enformato binario real (no complementado). El método de la suma directa se ilustra enel Ejemplo 2.21 sumando los números binarios de dos en dos.

El signo del producto de una multiplicación depende de los signos del multipli­cando y del multiplicador, de acuerdo con las siguientes reglas:

• Si son del mismo signo, el producto es positivo.• Si son de diferente signo, el producto es negativo.

MultiplicandoMultiplicadorPrimer producto parcial (3 X 239)Segundo producto parcial (2 X 239)Tercer producto parcial (1 X 239)Producto final

239X123717

478+ 23929.397

La operación de la multiplicación en muchas computadoras se realiza utilizandola suma. Como ya se ha visto, la sustracción se hace como una suma; ahora vamos aver cómo se hace la multiplicación.

La suma directa y losproductos parciales son dos métodos básicos para realizarla multiplicación utilízando la suma. En el método de la suma directa, se suma el mul­tiplicando un número de veces igual al multiplicador. En el ejemplo decimal anterior(3 x 8), se suma tres veces el multiplicando: 8 + 8 + 8 = 24. La desventaja de estemétodo es que será muy largo cuando el multiplícador sea un número grande. Si, porejemplo, se multiplica 75 x 350, se debe sumar 75 veces el número 350.

El método de los productos parciales es quizá el más común, ya que es la formade multiplicar manualmente. El multiplicando se multiplica por cada dígito del multi­plicador, empezando por el dígito menos significativo. El resultado de la multiplica­ción del multiplicando por un dígito del multiplicador se denomina producto parcial.Cada producto parcial se desplaza una posición a la izquierda y, cuando se han obte­nido todos los productos parciales, se suman para obtener el producto final. Aquí tie­ne un ejemplo con números decimales.

MultiplicandoMultiplicadorProducto

8x 324

78 • SISTEMAS DE NUMERACiÓN, OPERACIONES y CÓDIGOS

Page 17: Fundamentos sistemas digitales   cap 2

Sumar 1 al cociente: 00000001 + 00000001 = 00000010.

Primer resto parcialComplemento a 2 del divisorSegundo resto parcial positivo

01001011+1110011100110010

Paso 3. Restar el divisor del primer resto parcial utilizando la suma en complemen­to a 2.

Sumar 1 al cociente: 00000000 + 00000001 = 00000001.

DividendoComplemento a 2 del divisorPrimer resto parcial positivo

01100100+1110011]01001011

Paso 2. Restar el divisor del dividendo utilizando la suma en complemento a 2(recuerde que los acarreos finales no se tienen en cuenta):

Paso 1. El signo de ambos números es positivo, luego el cociente será positivo.Inicialmente, el cociente es cero: 00000000.

Solución

2.23 Dividir 01100100 entre 00011001.

En este sencillo ejemplo, el divisor se ha restado del dividendo tres veces antes deobtener resto cero. Por tanto, el cociente es 3.

El signo del cociente depende de los signos del dividendo y del divisor, deacuerdo con las dos reglas siguientes.

• Si son del mismo signo, el cociente es positivo.• Si son de diferente signo, el cociente es negativo.

Cuando se dividen dos números binarios, ambos números deben estar en forma­to real (no complementado). Los pasos básicos en un procedimiento de división sonlos siguientes:Paso 1. Determinar si los signos del dividendo y del divisor son iguales o diferentes.

Esto determina qué signo tendrá el cociente. Inicializar el cociente a cero.Paso 2. Restar el divisor del dividendo utilizando la suma en complemento a 2, para

obtener el primer resto parcial, y sumar 1 al cociente. Si este resto parcial espositivo, ir al paso 3. Si el resto parcial es cero o negativo, la división se haterminado.

Paso 3. Restar el divisor del resto parcial y sumar 1 al cociente. Si el resultado espositivo, repetir para el siguiente resto parcial. Si el resultado es cero o nega­tivo, la división se ha terminado.

Continuar restando el divisor del dividendo y los restos parciales hasta que elresultado sea cero o negativo. Contar el número de veces que se ha restado el divisory se obtendrá el cociente. El Ejemplo 2.23 ilustra estos pasos utilizando números bina-rios con signo de 8 bits.

OPERACIONES ARITMÉTICAS DE NÚMEROS CON SIGNO • 81

DividendoPrimera sustracción del divisorPrimer resto parcialSegunda sustracción del divisorSegundo resto parcialTercera sustracción del divisorResto cero

2171477·7O

En las computadoras, la operación de la división se lleva a cabo utilizando la sustrae­~ión. Puesto que la sustracción se hace con un sumador, la división también puede rea­hzarse con un sumador.

. ~l resulta?o de u~a división ~s.el cociente: el cociente es el número de veces queel dIvIs~r.estara contemdo en el dividendo. Esto significa que el divisor puede restar­se del dividendo un número de veces igual al cociente, tal como ilustra la división de21 entre 7:

dividendo---- = cocientedivisor

Los números en una división son el dividendo, el divisor y el cociente. Éstos se ilus­tran en el siguiente formato estándar de división:

División

1001100100001~ 0110011011111

Se añade el bit de signo ~ 1 0110011011111

Problema relacionado. Verificar que la multiplicación es correcta convirtiendo losnúmeros binarios a decimales y realizando la multiplicación.

Puesto que el signo del producto es 1, como se determinó en el paso 1, cal­cular el complemento a 2 del producto.

PasoS.

1001100100001

1001100100001+ 0000000

MultiplicandoMultiplicadorPrimer producto parcialSegundo producto parcialSuma del primero y el segundoTercer producto parcialSumaCuarto producto parcialSumaQuinto producto parcialSumaSexto producto parcialSumaSéptimo producto parcialProducto final

1010011X 0111011

1010011+ 1010011

11111001+ 0000000

01111]001+ 1010011

1110010001+ 1010011100011000001

+ 1010011

80 • SISTEMAS DE NUMERACiÓN, OPERACIONES Y CÓDIGOS

Page 18: Fundamentos sistemas digitales   cap 2

10, n. 12, 13, 14, 15,16,17,18,19, lA, lB, 1C, ID, lE, 1P, 20, 21, 22, 23, 24,25,26,27,28,29, 2A, 2B, zc, 20, 2E, 2F, 30, 31...

Con dos dígitos hexadecimales, se puede contar hasta FF16, que corresponde aldecimal 255. Para continuar contando, son necesarios tres dígitos hexadecimales. Porejemplo, 10016 es el 256 decimal, 10116 es el decimal 257, y así sucesivamente. El

¿Cómo se cuenta en hexadecimal una vez que se ha llegado a la F? Senci1lamente seinicia otra columna y se continúa así:

Contar en hexadecimal

Diez dígitos numéricos y seis caracteres alfabéticos forman el sistema de nume­ración hexadecimal. El uso de las letras A, B, C, D, E y F para representar números

. puede parecer extraño al principio, pero hay que tener en mente que cualquier sistemade numeración es sólo un conjunto de símbolos secuenciales. Si comprendemos quécantidades representan estos símbolos, entonces la forma de los símbolos en sí tienepoca importancia, una vez que nos hayamos acostumbrado a utilizarlos. Utilizaremosel subíndice 16 para designar a los números hexadecimales y evitar así cualquier con­fusión con los números decimales. En ocasiones, puede verse la letra "h" detrás de unnúmero hexadecimal.

TABLA 2.3

O 0000 O1 0001. 12 0010 23 0011 34 0100 45 0101 56 0110 67 0111 78 1000 89 1001 910 1010 A11 1011 B12 1100 e13 1101 D14 1110 E15 1111 F

El sistema hexadecimal es un sistema en base dieciséis, es decir, está formado por 16digitos y caracteres alfabéticos. La mayoría de los sistemas digitales procesan gru­pos de datos binarios que son múltiplos de cuatro bits, lo que hace al número hexade­cimal muy adecuado, ya que cada dígito hexadecimal se representa mediante unnúmero binario de 4 bits, como se puede ver en la Tabla 2.3.

hexadecimal a decimal. - Convertir de decimal a hexadecimal. • Sumar númeroshexadecimales. • Restar números hexadecimales.

NÚMEROS HEXADECIMALES - 83

El sistema de numeración hexadecimal consta de dieciséis dígitos y se usanfundamentalmente como una forma simplificada de representar o escribir losnúmeros binarios, ya que es muy fácil la conversión entre binario y hexadecimal.Como probablemente se habrápodido comprobar, los números binarios largos sondifíciles de leery escribir, ya que esfácil omitir o transponer un bit. Puesto que lascomputadoras y microprocesadores sólo entienden los 1sy los Os,es necesario emplearestos dígitos cuando se programa en 11 lenguaje máquina ". Imaginemos tener queescribir una instrucción de sesenta bits para un sistema de microprocesador utilizandoIs y Os.Es mucho más efectivo utilizar los números hexadecimales II octales. Losnúmeros octales se cubren en la Sección 2.9. El sistema hexadecimal se usafrecuentemente en computadoras y aplicaciones de microprocesadores.

Al finalizar esta sección, el lector deberá ser capaz de:

• Enumerar los dígitos hexadecimales. - Contar en hexadecimal. - Convertir debinario él hexadecimal. • Convertir de hexadecimal a binario. - Convertir de

2.8 • NÚMEROS HEXADECIMALES

Sumar 1 al cociente: 00000011 + 00000001 = 00000100 (cociente final). Elproceso se ha completado.

Problema relacionado. Verificar que el procedimiento es correcto convirtiendo losnúmeros binarios a decimales y realizando la división.

Tercer resto parcialComplemento a 2 del divisorResto cero

00011001+1110011100000000

Paso S. Restar el divisor del tercer resto parcial utilizando la suma en complemen­to a 2.

Sumar 1 al cociente: 00000010 + 00000001 = 00000011.

Segundo resto parcialComplemento a 2 del divisorTercer resto parcial positivo

00110010+ 1110011100011001

Paso 4. Restar el divisor del segundo resto parcial utilizando la suma en complemen­to a 2.

82 - SISTEMAS DENUMERACiÓN, OPERACIONES y CÓDIGOS

Page 19: Fundamentos sistemas digitales   cap 2

(a) E516

EJEMPLO 2.27 Convertir a decímallos siguientes números hexadecimales:

El Ejemplo 2.27 muestra este método de conversión.

163 162 161 16°4096 256 16 1

Otro método para convertir un número hexadecimal a su equivalente decimal es mul­tiplicar el valor decimal de cada dígito hexadecimal por su peso, y luego realizar lasuma de estos productos. Los pesos de un número hexadecimal crecen según laspotencias de 16 (de derecha a izquierda). Para un número hexadecimal de 4 dígitos,los pesos son:

Problema relacionado. Convertir a decimal el número hexadecimal 6BO.

= 2\\ + 29 + 27 + 22 + 2u = 2048 + 512 + 128 + 4 + 1 = 2693\0~.--"------.,...----'--...

101010000101

00011100 =24+23+22=16+8+4=28\0

A 8 5t. 1 t

(b)

e1

1t

(a)

Solución. En primer lugar, hay que convertir a binario el número hexadecimal, y des­pués a decimal.

(b) A85'6(a) lC'6

EJEMPLO 2.26 Convertir a decimal los siguientes números hexadecimales:

. Un método para encontrar el equivalente decimal de un número hexadecimal es, pri­mero, convertir el número hexadecimal a binario, y después, el binario a decimal. ElEjemplo 2.26 ilustra este procedimiento.

Conversión hexadecimal-decimal

Debería estar claro que es mucho más fácil tratar con un número hexadecimalque con el número binario equivalente. Puesto que la conversión también es fácil, elsistema hexadecimal se usa ampliamente para representar los números binarios enprogramación, salidas de impresora y displays.

NÚMEROS HEXADECIMALES • 85

Solución. En ia Tabla 2.3 puede verse que las letras de la A hasta a la F representanlos números decimales de 10 hasta 15, respectivamente.

En el apartado (a), el MSB se entiende que tiene tres ceros delante del 1 para formar ungrupo de 4 bits.

Problema relacionado. Convertir el número hexadecima16BD3 a binario.

(e) 9 7 4 2j, t j, .j,

,_..,..____...,~~,.....-"--..1001011101000010

(b) e F 8 E

t j, t t,_....._.. ~,.....----"---.........--.1100111110001110

(a) 1 O A 4L_

j, t t j,,...-"--.,~,...-"--.,

1000010100100

EJEMPLO 2.25 Determinar los números binarios correspondientes a los siguientes números hexade­cimales:(a) lOA4'6 (b) CF8E'6 (e) 974216

Solución

Para convertir un número hexadecimal en un número binario se realiza el procesoinverso, reemplazando cada símbolo hexadecimal por el grupo de cuatro bits adecua­do, como ilustra el Ejemplo 2.25.

Conversión hexadecimal-binario

En el apartado (b) se han añadido dos ceros para completar el grupo de 4 bits de laizquierda.

Problema relacionado. Convertir a hexadecimal el número binario1001111011110011100.

j,

7 = CA5716

t5

tA

j,

e

(b)1100101001010111~ '---.,.--' ~ ........___.(a)

EJEMPLO 2.24 Convertir a hexadecimallos siguientes números binarios:(a) 1100101001010111 (b) 11111]000101101001

Solución

La conversión de un número binario en hexadecimal es un procedimiento muy senci­llo. Simplemente se parte el número binario en grupos de 4 bits, comenzando por elbit más a la derecha, y se reemplaza cada grupo de 4 bits por su símbolo hexadecimalequivalente, como se ilustra en el Ejemplo 2.24.

Conversión binario-hexadecimal

máximo número hexadecimal de 3 dígitos es FFF'6' es decir el decimal 4095. El máxi­mo número hexadecimal de 4 dígitos es FFFF'6' que es el decimal 65.535.

84 • SISTEMASDE NUMERACiÓN, OPERACIONES Y CÓDIGOS

Page 20: Fundamentos sistemas digitales   cap 2

(d) Fió + CI6 = 1510 + 1210 = 2710

2710 - 1610 == 1110 = B 16 con acarreo 1DI6 + AI6 + 116 = 1310+ 1010 + 110 = 24\02410 - 1610 = 810 = 816 con acarreo 1

Problema relacionado. Sumar 4CI6 y 3A16•

(e) BI6 + 416 = 1110 + 410 = 1510 = FI6216 + 816 = 210+ 810 = 1010 = AI6

5816 columna derecha:+ 2216 columna izquierda:7AI6

2BI6 columna derecha:+ 8416 columna izquierda:AFI6

DFI6 columna derecha:+ ACl6

18BI6 columna izquierda:

(b) 816 + 216 = 810 + 210 = 1010 = AI6516 + 216 = 510 + 210::::;: 710 = 716

Solución(a) 2316 columna derecha: 316 + 616 = 310 + 610 = 910 = 916

+ 1616 columna izquierda: 216 + 116 = 210 + 110 = 310 = 3163916

Sumar los siguientes números hexadecimales:(a) 2316 + 1616 (b) 5816 + 2216 (e) 2BI6 + 8416

EJEMPLO 2.29

La suma puede hacerse directamente con números hexadecimales, teniendo en cuen­ta que los dígitos hexadecimales de O a 9 son equivalentes a los dígitos decimales deO a 9, y que los dígitos hexadecimales de A hasta F son equivalentes a los númerosdecimales 10 a 15. Cuando se suman dos números hexadecimales, se usan las siguien­tes reglas (los números decimales se indican con el subíndice 10).

1. En cualquier columna dada de una suma, pensar en los dos dígitos hexadecimalesen términos de su valor decimal. Por ejemplo, 516 = 510 y CI6 = 1210'

2. Si la suma de los dos dígitos es 1510 o menor, reducir al dígito hexadecimal corres­pondiente.

3. Si la suma de los dígitos es mayor que 1510, hay que reducir la suma que excede de1610, y pasar el acarreo de 1 a la siguiente columna.

Suma hexadecimal

NÚMEROS HEXADECIMALES • 87

Problema relacionado. Convertir a hexadecimal el número decimal 2591.

- '." .>"/!f~.~" ",( Número";~8 ·i'mlll\hexadecimal

Dígito __j LDígitomás significativo menos significativo

del cociente sea cero

16

650 ""fiI"'""'" ,-- = 40,'" -4 0,625 X 16= 10=I~.

40 "",16 2,~----70,5 X 16= 8=

r.~",-0;'1~5;~ 0,125 X 16 = 2 =

~ Parar cuando la parte entera

hexadecimalResto

EJEMPLO 2.28 Convertir a hexadecimal el número decimal 650 por el método de la división sucesiva por 16.

Solución

La división sucesiva por 16 de un número decimal generará el número hexadecimalequivalente formado por los restos de las divisiones. El primer resto que se genera esel dígito menos significativo (LSD). Cada división sucesiva por 16 dará un resto queserá un dígito del número hexadecimal equivalente. Este procedimiento es similar a ladivisión sucesiva por 2 para la conversión decimal-binario, que se ha visto en laSección 2.3. El Ejemplo 2.28 ilustra el procedimiento. Se observa que cuando uncociente tiene parte fraccionaria, ésta se multiplica por el divisor para obtener el resto.

Conversión decimal-hexadecimal

(a) E516 = (E X 16) + (5 X 1) = (14 X 16) + (5 X 1) = 224 + 5 = 22910

(b) B2F816 (B X 4096) + (2 X 256) + (F X 16) + (8 X 1)= (11 X 4096) + (2 X 256) + (15 X 16) + (8 X 1)= 45.056 + "512 + 240 + 8 = 45.81610

Problema relacionado. Convertir a decimal el número hexadecimal 60Aló'

86 • SISTEMAS DE NUMERACiÓN, OPERACIONES y CÓDIGOS

Page 21: Fundamentos sistemas digitales   cap 2

Un método para convertir un número decimal en un número octal es el método de ladivisión sucesiva por 8, que es parecido al método utilizado en la conversión a bina- .rio o a hexadecimal de los números decimales. Para mostrar cómo se hace, converti­mos a octal el número decimal 359. Cada división sucesiva por 8 da un resto que seráun dígito del número octal equivalente. El primer resto que se genera es el dígitomenos significativo.

Conversión decimal-octal

23748 = (2 X 83) + (3 X 82) + (7 X 81) + (4 X 8°)= (2 X 512) + (3 X 64) + (7 X 8) + (4 X 1)

1024 + 192 + 56 + 4 = 127610

Puesto que el sistema de numeración octal es un sistema en base ocho, cada posiciónsucesiva de dígito es una potencia superior de ocho, empezando por el dígito situadomás a la derecha con 8°. La evaluación de un número octal en términos de su equiva­lente decimal se consigue multiplicando cada dígito por su peso y sumando los pro­ductos, como se muestra a continuación para 23748:

Peso: 83 82 81 8°Número octal: 2 3 7 4

Conversión octal-decimal

y así sucesivamente. Contar en octal es parecido a contar en decimal, excepto que losdígitos 8 y 9 no se usan. Para distinguir los números octales de los números decima­les y hexadecimales, utilizaremos el subíndice 8 para indicar un número octal. Porejemplo, ,158 es equivalente a 1310 en decimal ya D en hexadecimal. En ocasiones,puede verse una "o" o una "Q" detrás de un número octal.

10,11,12,13,14,15,16,17,20,21

Para contar por encima de 7, añadimos otra columna y continuamos así:

Como el sistema hexadecimal, el sistema octalproporciona un método adecuado paraexpresar los códigos y números binarios. Sin embargo, se usa menos frecuentementeque el hexadecimal en las computadoras y microprocesadores para expresarmagnitudes binarias con propósitos de entrada y salida.

Al finalizar esta sección, el lector deberá ser capaz de:

• Escribir los dígitos del sistema de numeración octal. • Convertir de octal a decimal.• Convertir de decimal a octal. • Convertir de octal a binario. • Convertir de binarioa octal.

2.9 • NÚMEROS OCTALES

NÚMEROS OCTALES • 89

El sistema de numeración octal está formado por ocho dígitos, que son:

O,1, 2, 3, 4, 5, 6, 7

La diferencia es B816

Problema relacionado. Restar 17316 de BCDló'

(h) OBI6 = 00001011Complemento a 2 de OB16= 11110101=F51ó

C316+ F516 suma¡ÍB816 el acarreo no se tiene en cuenta

EJEMPLO2.30 Restar los siguientes números hexadecimales:(a) 8416 - 2AI6 (b) C316 - OBI6

Solución(a) 2AI6 = 00101010

Complemento a 2 de 2AI6 = 1101011O= D616

8416+ D616 suma~ el acarreo no se tiene en cuenta, como en la suma en complementoa 2

La diferencia es SAlÓ

Puesto que un número hexadecimal se puede usar para representar un número binario,también se puede emplear para representar el complemento a 2 del número binario.Por ejemplo, la representación hexadecimal de 110010012 es C91ó' El complemento a2 de este número binario es 00110111, que en hexadecimal se escribe como 3716,

Como ya se sabe, el complemento a 2 permite restar sumando números binarios.Luego también se puede usar este método para la sustracción en hexadecimal comoilustra el Ejemplo 2.30. '

Sustracción hexadecimal utilizando el métododel complemento a 2

88 • SISTEMAS DE NUMERACiÓN, OPERACIONES Y CÓDIGOS

Page 22: Fundamentos sistemas digitales   cap 2

Problema relacionado. Convertir a octal el número binario 101010100011111001O.

(b) !Q!illQ2lt t l5 7 1 = 5718

(d) 011010000100.........__..~-.....--..__,..._Jt l t t3 2 O 4 = 32048

(a) !..!.Q!.Qll .l.65=658

(e) 100110011010...___...._____,___...__,,__.,,___.,

.l. 1 l t4 6 3 2 = 46328

Solución

(d) 11010000100(e) 100110011010(h) 101111001(a) 110101

EJEMPLO 2.32 Convertir a octal los siguientes números binarios:

La conversión de un número binario a un número octal es el inverso de la conversiónde octal a binario. El procedimiento es el siguiente: se comienza por el grupo de tresbits más a la derecha y, moviéndose de derecha a izquierda, se convierte cada grupode 3 bits en el dígito octal equivalente. Si para el grupo más a la izquierda no hay dis­ponibles tres bits, se añaden uno o dos ceros para completar el grupo. Estos ceros noafectan al valor del número binario.

Conversión binario-octal

Problema relacionado. Convertir a decimal cada uno de los números binarios yverificar que los valores concuerdan con el valor decimal del número octal correspon­diente.

(d) 7 5 2 6t t t 1IDlo1owfiO

(e) 1 4 Ot t t

001100000

(b) 2 5l l

OiOTol

1 3t l

OoIOtI

(a)

Solución

NÚMEROS OCTALES • 91

(d) 75268(e) 1408'(b) 258

EJEMPLO 2.31 Convertir a binario los siguientes números octales:

Par~ e.onvertir un número octal en un número binario, simplemente se reempla­za cada dígito octal por el correspondiente grupo de tres bits. Este procedimiento seilustra en el Ejemplo 2.31.

7111

6110

5101

4100

3011

2010

1001

o000

TABlA 2.4Conversiónoctal-binario

Puesto que cada dígito octal se puede representar mediante un número binario de 3dígitos, es fácil convertir a binario un número octal. Cada dígito octal se representamediante tres bits, como se muestra en la Tabla 2.4.

Conversión octal-binario

más significativoDígito _1

Número octal

LDígitomenos significativo

Resto359 ~r..

-8- = 44&I1$:~0,875 X 8=

1__J44 ,.."8" =5';~.---4 0,5X8 =

"_______j15 ,.' ..".,S= 0;62$j~0,625 X 8 =

TParar cuando la parteentera del cociente sea cero

90 • SISTEMAS DE NUMERACiÓN, OPERACIONES y CÓDIGOS

Page 23: Fundamentos sistemas digitales   cap 2

(a) 0011+ 0100

0111

Solución. Se muestra la suma en decimal con propósitos de comparación.

(b) 00100011 + 00010101(d) 010001010000+ 010000010111

(a) 0011 + 0100(e) 10000110 + 00010011

Sumar los siguientes números BCD:EJEMPLO 2.35

BCD es un código numérico y puede utilizarse en operaciones aritméticas. La suma esla más importante de estas operaciones, ya que las otras tres operaciones (sustracción,multiplicación y división) se pueden llevar a cabo utilizando la suma. A contínuaci6n,vamos a ver cómo se suman dos números BCD:

Paso 1. Sumar los dos números BCD utilizando las reglas de la suma binaria vistasen la Sección 2.4.

Paso 2. Si una suma de 4 bits es igual o menor que 9, es un número BCD válido.Paso 3. Si una suma de 4 bits es mayor que 9, o si genera un acarreo en el grupo de

4 bits, el resultado no es válido. En este caso, se suma 6 (0110) al grupo de4 bits para saltar así los seis estados no válidos y pasar al código 8421. Si segenera un acarreo al sumar 6, éste se suma al grupo de 4 bits siguiente.

El Ejemplo 2.35 ilustra la suma en BCD para los casos en que la suma en cada:columna de 4 bits es igualo menor que 9 y, por tanto, las sumas de 4 bits son núme­ros BCD válidos. El Ejemplo 2.36 ilustra el procedimiento en el caso de que se pro­duzcan sumas no válidas (mayores que 9 o que generen acarreo).

Suma en BCD

Problema relacionado. Convertir a decimal el código BCD 10000010001001110110.

(a) 10000110 eb) 001101010001 Ce) 1001010001110000

Solución(a) 1000011 O (b)OOll 01010001 (c)1001010001110000

'-v----''-v----' ~~ ~"-.r---'''-----v--'~

J, J, ! J, J, J, t J, t8 6 3 5 1 9 4 7 O

EJEMPLO 2.34 Convertir a decimal los siguientes códigos BCD:

Es igualmente sencillo determinar el número decimal a partir del código BCD.Se comienza por el bit más a la derecha y se divide el código en grupos de cuatro bits.Después se escribe el dígito decimal representado por cada grupo de 4 bits. ElEjemplo 2.34 ilustra esto.

CÓDIGO DECIMAL BINARIO (BCD) • 93

23+ 15

38

001101011000

(b) 0010+ 0001

0011 .

3+47Problema relacionado. Convertir a BCD el número decímal9673.

,.._...____~------.0010010001101001

,.._...____~000101110000

~00110101

(d) 2 4 6 9J,J,! J,

(e) 1. 7 Ot t -L

(b) 9 8t .l,

~10011000

(a) 3 5t t

Convertir a BCD los siguientes números decimales:(a) 35 (b) 98 (e) 170 (d) 2469

Solución

EJEMPLO 2.33

Códigos no válidos. Deberíamos saber que, con cuatro dígitos, se pueden repre­sentar dieciséis números (desde 0000 hasta 1111), pero en el código 8421, s610se usandiez de ellos. Las seis combinaciones que no se emplean (1010, 1011, 1100, 1101,ll IO y 1111) no son válidas en el código BCD 8421.

Para expresar cualquier número decimal en BCD, simplemente reemplazar cadadígito decimal por el apropiado código de 4 bits, tal como muestra el Ejemplo 2.33.

8 91000 1001

6 7OlIO 0111

4 50100 0101

o 2 30000 0001 0010 0011

TABLA 2.5Conversiondecimal/BCD

El código 8421 es un tipo de código decimal binario (BCD). Código decimal binariosignifica que cada dígito decimal, de Ohasta 9, se representa mediante un código bina­rio de cuatro bits. La designación 8421 indica los pesos binarios de los cuatro bits (23,22,2',2°). La facilidad de conversión entre los números en código 8421 y los familia­res números decimales es la principal ventaja de este código. Todo lo que hay querecordar sobre las diez combinaciones binarias que representan los diez dígitos deci­males se muestra en la Tabla 2.5. El código 8421 es el código BCD más importante, ycuando hacemos referencia a BCO,. siempre es al código 8421, a no ser que se indiqueotra cosa.

El código 8421

El código decimal binario (BCD Binary Coded Decimal) es una forma de expresarcada uno de los dígitos decimales con un código binario. Puesto que en el sistemaBCD sólo existen diez grupos de código, es muy fácil convertir entre decimal y BCD.Como nosotros leemos y escribimos en decimal, el código BCDproporciona unaexcelente interfaz para los sistemas binarios. Ejemplos de estas interfaces son lasentradas por teclado y las salidas digitales.

Al finalizar esta sección, el lector deberá ser capaz de:

• Convertir cada dígito decimal a BCD. • Expresar en BCD números decimales.• Convertir de BCD a decimal. • Sumar números en BCD.

2.10 • CÓDIGO DECIMAL BINARIO (BCD)

92 • SISTEMAS DE NUMERACIÓN, OPERACIONES Y CÓDIGOS

Page 24: Fundamentos sistemas digitales   cap 2

El código Gray

Existen muchos códigos especializados que se usan en los sistemas digitales.Acabamos de aprender el código BCD; ahora vamos a ver algunos otros. Algunoscódigos son estrictamente numéricos, como BCD, y otros son alfanuméricos, es decir,se utilizan para representar números, letras, símbolos e instrucciones. En esta secciónsepresentan el código Gray y el código ASCII. También se cubre la detección deerrores en los códigos mediante el bit de paridad.

Al finalizar esta sección, el lector deberá ser capaz de:

• Explicar la ventaja del código Gray, • Convertir entre código Gray y código binario.• Utilizar el código ASCII. • Identificar los errores en los códigos basándose en elmétodo de paridad.

2.11 • CÓDIGOS DIGITALES Y PARIDAD

El código Gray es un código sin pesos y no aritmético, es decir, no existen pesosespecíficos asignados a las posiciones de los bits. La característica más importante delcódigo Gray es que sólo varía un bit de un código al siguiente. Esta propiedad esimportante en muchas aplicaciones, tales como los coclificadores de eje de posición,en los que la susceptibilidad de error aumenta con el número de cambios de bit entrenúmeros adyacentes dentro de una secuencia.

La Tabla 2.6 presenta el código Gray de cuatro bits para los números decimales deO a 15. Como referencia se muestran también en la tabla los números binarios. Como enlos números binarios, el código Gray puede tener cualquier número de bits. Obsérveseque, en este código, sólo cambia un bit entre los sucesivos números. Por ejemplo, parapasar del decimal 3 al 4, el código Gray lo hace de 0010 a 0110, mientras que el códigobinario lo hace de 0011 a 0100, cambiando tres bits. En el código Gray, el único bit quecambia es el tercer bit de la derecha, los restantes permanecen igual.

Conversión de código binario a código Gray. Algunas veces, la conversión decódigo binado a código Gray resulta útil. Las siguientes reglas explican cómo con­vertir un número binaría en un número en código Gray:

1. El bit más significativo (el que está más a la izquierda, MSB) en el código Gray esel mismo que el correspondiente MSB del número binario.

2. Yendo de izquierda a derecha, sumar cada par adyacente de los bits en código bina­rio para obtener el siguiente bit en código Gray. Los acarreos deben descartarse.

CÓDIGOS DIGITALESy PARIDAD • 95

9+ 413

1 3(b) 1001 9

+ 1001 + 90010 No válido debido al acarreo 18+ 0110 Se suma 6

0001 1000 Número BCD válido'--v--' '--v--'

J, J,1 8

(e) 0001 0110 16+ 0001 0101 + 150010 IOn El grupo de la derecha no es válido (>9), 31

+ 0110el grupo de la izquierda si es válido.

Se suma 6 al código no válido. Se sumael acarreo, 0001, al siguiente grupo.

0011 0001 Número BCD válido~ ~J, J,3 1

(d) 0110 0111 67+ 0101 0011 + 531011 1010 Ambos grupos no son válidos (>9) 120+ 0110 + 0110 Se suma 6 a ambos grupos

0001 0010 0000 Número BCD válido'--v--' ~,---J ._____,__.,

J, J, J,1 2 O

Problemarelecionedo. Sumar los números BCD: 01001000 + 00110100.

Número BCD no válido (>9)Se suma 6Número BCD válido

La suma en números decimales se indica con propósitos de comparación.1001

+ 01001101

+ 01100001 0011T 'T'

(a)

(b) 1001+ 1001(d) 01100111 + 01010011

(a) 1001 + 0100(e) 00010110 + 00010101Solución.

Sumar los siguientes números BCD:EJEMPLO2.36

Observe que en ningún caso la suma de las cuatro columnas de 4 bits excede 9, por loque los resultados son números BCD válidos.

Problema relacionado. Sumar los números BCD: 1001000001000011 y0000 100100100101.

450+ 417

867

000001110111

010100010110

(d) 0100+ OIOO

1000

86+ 1399

011000111001

(e) 1000+ 0001

1001

94 • SISTEMAS DE NUMERACiÓN, OPERACIONES y CÓDIGOS

Page 25: Fundamentos sistemas digitales   cap 2

Códigos alfanuméricosPara la comunicacíón, no sólo se necesitan números, sino también letras y otros sím­bolos. En sentido estricto, los códigos alfanuméricos son códigos que representannúmeros y caracteres alfabéticos (letras). Sin embargo, la mayoría de estos códigostambién representan otros caracteres tales como símbolos y distintas instruccionesnecesarias para la transferencia de información.

Como mínimo, un código alfanumérico debe poder representar los diez dígitosdecimales y las 26 letras del alfabeto, es decir, un total de 36 elementos. Esta cantidadrequiere seis bits para cada combinación de código, puesto que cinco son insuficien­tes (25 = 32). Con seis bits se tiene un total de 64 combinaciones, por lo que 28 de ellasno se utilizan. Obviamente, en muchas aplicaciones, para completar la comunicación,son necesarios otros símbolos además de los números y las letras. Se necesitan espa­cios, punto, dos puntos, punto y coma, signo de interrogación, etcétera. También senecesitan instrucciones para comunicar al sistema receptor qué hacer con la informa­ción. De este modo, con códigos' con una longitud de seis bits, se pueden manejar

Ejemplo de aplicaciónEn la Figura 2.4 se muestra un diagrama simplificado de un mecanismo codificadorde eje de 3 bits. Básicamente, está formado por tres anillos concéntricos conductoresque están divididos en ocho sectores. Cuantos más sectores haya, con mayor precisións~ puede representar la posición, pero aquí sólo se utilizan ocho con propósitos deilustración. Cada sector de cada anillo se fija a un nivel alto o a un nivel bajo de ten­sión para representar un 1 o un O. Los sectores de color gris indican los ls, y los sec­tores blancos los Os. Puesto que los anillos giran con el eje, hacen contacto con unadisposición de escobillas que están en una posición fija, y a las que están conectadaslas líneas de salida. Como el eje gira en el sentido contrario a las agujas del reloj a tra­vés de los 360°, los ocho sectores se mueven y pasan por las tres escobillas produ­cíendo una salida binaria de tres bits que indica la posición del eje.

En la Figura 2.4(a), los sectores están colocados según el modelo binario nor­mal, por lo que las escobillas van de 000 a 001, de 010 a 011, y así sucesivamente.Cuando las escobillas se encuentran sobre los sectores de color gris, la salida es 1, Ycuando están sobre los sectores blancos, la salida es O. Si una de las escobillas, duran­te la transición de un sector al siguiente, se adelanta ligeramente, puede producirseuna salida errónea. Consideremos lo que ocurre cuando las escobillas están en el sec­tor 111, Ypasan al sector 000. Si la escobi1laMSB se adelanta ligeramente, la posiciónse indicaría de forma incorrecta por una transición a 011 en lugar de 111a 000. En estetipo de aplicaciones, es virtualmente imposible mantener el alineamiento mecánicopreciso de todas las escobi1las, por lo que siempre se producirán algunos errores enmuchas de las transiciones entre sectores.

El código Gray se utiliza para eliminar los errores que son inherentes al códigobinario. Como se muestra en la Figura 2.4(b), el código Gray asegura que sólo un bitvariará entre sectores adyacentes. Esto significa que aunque las escobillas no puedantener un alineamiento preciso, nunca se producirá un error de transición. Por ejemplo,consideremos de nuevo qué ocurre cuando las escobillas están en el sector 111 y semueven al sector siguiente, 101. Las dos únicas posibles salidas durante la transiciónson 111 y 101, independientemente de cómo estén alineadas las escobillas. Una situa­ción similar se produce en las transiciones entre los restantes sectores.

CÓDIGOS DIGITALESY PARIDAD • 97

101101.

1 l 1 1fij_ ./11 /1; ,./1

,--- , ->+ 'V,./ ,o /' --¡- ,J,1 O 1 O

Problema.re/a~io~ado., (a) Convertir a' código Gray el número binario(b) Convertír a binario el código Gray 100111.

CÓdigoGray a binario:1 O 1 Ot __+./l,J.. ._-'J _Al

~ .' / -J-

1 1 O O

(b)

,:>0- + ~ 1l lO 1

)j-+-.¿Ot tO 1

Binario a código Gray:1 - + -.¿ 1 -- __o> O- + -.¿ OJ t t t101 O

(a)

(a) Convertir a código Gray el número binario 11000110.(b) Convertir a binario el código Gray 10101111.

, Solución

EJEMPLO2.37

1- + -.¿ O -- ..l_ --7 1- + -.¿ 1 _..-'-----:'O Binariot t ~ ~ t1 1 1 O 1 Gray

El código Gray es 11101.

:onver~iónd~ C?rayabinario. Para convertir de código Gray a binario, se utili­za un metodo similar, pero con algunas diferencias. Se aplican las siguientes reglas:

1. El bitlmás signifi~ativo ~bitmás a la izquierda) en el código binario es el mismoque e correspondiente bit en código Gray.

2. ~ c~da bit d~l.:ódigo binario generado se le Suma el bit en código Gray de lasiguiente posicion adyacente. Los acarreos se descartan.

Por ejemplo, la conversión del número en código Gray 11011 a binari ' ., o es como SIgue:1 1 O 1 1 Grayt ./1, _-'1 ./1, /7/,"'r' '" _,,- . ~+.,J, v.-- .,,,,,--

1 O O l O BinarioEl número binario es 10010.

~or .ejemplo, la conversión del número binario 1011O a código Gr h d 1siguiente modo: ay se ace e

96 • SISTEMAS DE NUMERACIÓN, OPERACIONES YCÓDIGOS

Page 26: Fundamentos sistemas digitales   cap 2

Caracteres del código ASCII extendidoAdemás de los 128 caracteres ASCII estándar, existen 128 caracteres adicionales quefueron adoptados por IBM para utilizar en sus computadoras personales (PC).Debidoa la popularidad del PC, estos caracteres especiales del código ASCII extendido seusan también en otras aplicaciones distintas de los PC, por lo que se ha convertido enun estándar no oficial.

Los caracteres del código ASCII extendido se representan mediante una serie decódigos de 8 bits que van, en hexadecimal, del 80 hasta FF.

Los caracteres de control ASCII. Los primeros treinta y dos códigos de la tablaASCII (Tabla 2.7) representan los caracteres de control. Estos se utilizan para permi­tir a dispositivos, tales como una computadora o una impresora, que se comuniquenentre sí cuando transfieren información y datos. La Tabla 2.8 enumera los caracteresde control y las funciones de las teclas de control que permiten introducir directamen­te el código ASCII a través del teclado, presionando la tecla control (CTRL) y el sím­bolo correspondiente. También se facilita una breve descripción de cada carácter decontrol.

XProblema relacionado. Determinar la secuencia de los códigos ASCII requeridapara la siguiente instrucción de programa y expresarla en hexadecimal:

80 INPUT y

Binario Hexadecimal0110010 3216

0110000 3016

0100000 2016

1010000 5016

1010010 5216

1001001 4916

1001110 4E16

1010100 5416

0100000 2016

0100010 2216

1000001 4116

0111101 3D16

0100010 2216

0111011 3Bl6

1011000 5816

Solución.carácter.

Carácter2

~OSpacepR1NTSpace

. "A=

Determinar los códigos binarios ASCII que se han introducido a través del teclado de lacomputadora cuando se ha escrito la instrucción BASIC siguiente. Expresar tambiéncada código en hexadecimal.

20 PRINT "A=";X

En la Tabla 2.7 puede encontrar el código ASCII correspondiente a cada

EJEMPLO2.38

CÓDIGOS DIGITALESy PARIDAD • 99

El American Standard Code for Information Interchange (ASCn, código están­dar americano para el intercambio de información) es un código alfanumérico univer­sa~ente aceptado, que se usa en la mayoría de las computadoras y otros equipos elec­tromcos. La mayor parte de los teclados de computadora se estandarizan de acuerdocon el código ASCII, y cuando se pulsa una letra, un número o un comando de con­trol, es el código ASCII el que se introduce en la computadora.

El código ASCII dispone de 128 caracteres que se representan mediante un códi­go bi~ario de 7 bits. Realmente, el código ASCII puede considerarse como un códigode 8 bits en el que el MSB siempre es O.En hexadecimal, este código de 8 bits va de 00~ast~ 7F. Los primeros 32 caracteres ASCII son comandos no gráficos, que nunca sel~pnmen o presentan en pantalla, y sólo se utilizan para propósitos de control.Ejemplos de caracteres de control son el carácter nulo, avance de línea, inicio de textoy escape. Los demás caracteres. son símbolos gráficos que pueden imprimirse o rnos­tr~r.seen pa.ntalla, e incl~yen las letras del alfabeto (mayúsculas y minúsculas), los diezdígitos decimales, los SIgnos de puntuación y otros símbolos comúnmente utilizados.. La Tabla 2.7 presenta un listado del código ASCII, con su representación deci­mal, hexadecimal y binaria para cada carácter y símbolo. En la primera columna de latabla se enumeran los nombres de los 32 caracteres de control (en hexadecimal, de 00hasta IF), y en las restantes columnas se muestran los símbolos gráficos (en hexade­cimal, de 20 hasta 7F).

ASCII

números decimales, el alfabeto y otros 28 símbolos. Esto debería dar una idea de losrequerimientos para un código alfanumérico básico. El ASCII es el código alfanumé­rico más común y se va a tratar a continuación.

FIGURA 2.4Ilustración simplificada de cómo el código Gray resuelve el problema de error en los codificado­res deposición de eje.

(b) Código Gray(a) Binario

>s~fm__'_~~~~§~ ....Grayde3bits

Las escobillas de contacto estánen la posición fija y se deslizana lo largo de la superficie de los

conductores que _...-:-~~L=--

98 • SISTEMAS DE NUMERACiÓN, OPERACIONES Y CÓDIGOS

Page 27: Fundamentos sistemas digitales   cap 2

CÓDIGOS DIGITALES Y PARIDAD • 101

TABLA 2.3CaracteresdecontrolASCll

O 00 CTRL@ Carácter nuloNULSOH 01 CTRLA Inicio de cabecera

STX 2 02 CTRLB Inicio de texto

ETX 3 03 CTRLC Fin de texto

EOT 4 04 CTRLD Fin de transmisión

ENQ 5 05 CTRLE Petición

ACK 6 06 CTRLP Reconocimiento

BEL 7 07 CTRLG Timbre

BS 8 08 CTRLH Barra espaciadora

HT 9 09 CTRLI Tabulador horizontal

LF 10 OA CTRLJ Avance de línea

VT 11 OB CTRLK Tabulador vertical

FF 12 OC CTRLL Salto de página

CR 13 OD CTRLM Retomo de carro

SO 14 OE CTRLN Desplazamiento de salida

SI 15 OP CTRLO Desplazamiento de entrada

DLE 16 10 CTRLP Escape de enlace de datos

DCI 17 11 CTRLQ Dispositivo de control 1

DC2 18 12 CTRLR Dispositivo de control 2

DC3 19 13 CTRLS Dispositivo de control 3

DC4 20 14 CTRLT Dispositivo de control 4

NAK 21 15 CTRLU Confirmación negativa

SYN 22 16 CTRLV Sincronismo

ETB 23 17 CTRLW Fin del bloque de transmisión

CAN 24 18 CTRLX Cancelación

EM 25 19 CTRLY Fin del dispositivo

SUB 26 lA CTRLZ Sustitución

ESC 27 lB CTRL[ Escape

FS 28 IC CTRLI Separadorde fichero

GS 29 iD CTRLj Separador de grupo

RS 30 lE CTRL" Separador de registro

US 31 lF CTRL Separador de unidad

El código ASCII extendido está formado por caracteres que pertenecen a lassiguientes categorías generales:

1. Caracteres alfabéticos no ingleses2. Símbolos de moneda no ingleses3. Letras griegas4. Símbolos matemáticos5. Caracteres para gráficos6. Caracteres para gráficos de barras7. Caracteres sombreados

En laTabla 2.9 se enumera el conjunto de caracteres del código ASCII extendido, jun­to con sus representaciones decimal y hexadecimal.

.......o - N rn ~ V) 'el ¡-- CO 0\ .. .~ V 1I (\ e-<l)

g _.:: ~ -fFj- ~ ~, ...._ -- ·x· +it'

o~o~o~o~o~o~o~o~o~o~o~o~o~o~o~ooo~~oo~~oo~~oo~~oo~~oo~~oo~~oo~0000----0000----0000----0000 _oooooooo~~~~~~~~oooooooo~~~~~~~0000000000000000 - _

~~~~~~~~~~~~~~~~ ~~ ~~~~~~~~ ~~~~~~~ ~~~~~~~~~~~

100 • SISTEMAS DE NUMERACiÓN, OPERACIONES y CÓDIGOS

Page 28: Fundamentos sistemas digitales   cap 2

(e) 101101(b) 111000(e) 101101011111

(a) lOtO(d) 100011100101

Asignar el bit de paridad par apropiado a los siguientes grupos de código:

00001

t_________ Bit erróneo

Cuando se recibe este código, la circuitería de comprobación de paridad determina quesólo hay un 1 (impar), cuando debería haber un número par de ls. Puesto que, en el códi­go recibido no aparece un número par de l s, esto indica que se ha producido un error.

Un bit de paridad impar también facilita de forma similar la detección de un úni­co error en un grupo de bits dado.

~ __ Bit de paridad par

00101

t_________ Código BCD

Ahora, supongamos que se ha producido un error en el tercer bit de la izquierda (el 1se transmite como O) como sigue:

El bit de paridad se puede añadir al principio o al final del código, dependiendodel diseño del sistema. Obsérvese que el número total de ls, incluyendo el bit de pari­dad, siempre es par para paridad par, y siempre es impar para paridad impar.

.Detección de un error. Un bit de paridad facilita la detección de un único error debit (o de cualquier número impar de errores, lo cual es muy improbable), pero no pue­de detectar dos errores dentro de un grupo. Por ejemplo, supongamos que deseamostransmitir el código BCD 0101 (el método de paridad puede usarse con cualquiernúmero de bits, ahora usamos cuatro con propósitos de ilustración). El código totaltransmitido incluyendo el bit de paridad par es

c------ Bit de paridad par

oo1

oO1o

0000000100100011010001010110011110001001

000000010010001101000101Olla011110001001

o11O1OO11O

CÓDIGOS DIGITALESY PARIDAD • 103

J

±2:

nE

T

C]'

f)r

TABLA2.10El código BCDcon bits deparidad

224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255

ex

•II•

I

--'

Ir

1=

F

JLlr

I~

-+-FI~I!:

::::¡

~I11

=1-JI

--1

~I

»«

+.L4

11,

2-¿

óÚ

ñÑ

EOElE2E3E4ESE6E7E8E9EAEBECEDEEEFFOFlF2F3F4F5F6F7F8F9FAFBFCFDFEFF

COC1C2C3C4C5C6C7C8C9CACBCCCDCECFDODID2D3D4D5D6D7D8D9DADBDCDDDEDF

192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223

L160 AO161 Al162 A2163 A3164 A4165 A5166 A6167 A7168 A8169 A9170 AA171 AB172 AC173 AD174 AE175 AF176 BO177 B1178 B2179 B3180 B4181 B5182 B6183 B7184 B8185 B9186 BA187 BB188 BC189 BD190 BE191 BF

á808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F

128129130131132133134135136137138139140141142143144145146]47148149150151152153154155156157158159

yoÜ~f'iPrf

relE6éioÚ

u

AÁÉ

<;éee

a

áiia

etié

TABlA 2.9Caracteres de código ASCII extendido.

Muchos sistemas emplean un bit de paridad como medio para la detección de erroresde bit. Cualquier grupo de bits contiene un número par o impar de l s. Un bit de pari­dad se añade al grupo de bits para hacer que el número total de 1s en el grupo seasiempre par o siempre impar. Un bit de paridad par hace que elnúmero total de ls seapar, y un bit de paridad impar hace que el número total de 1s del grupo sea impar.

Un determinado sistema puede funcionar con paridad par o impar, pero no conambas. Por ejemplo, si un sistema trabaja con paridad par, una comprobación que se rea­lice en cada grupo de bits recibidos tiene que asegurar que el número total de ls en esegrupo es par. Si hay un número impar de 1s, quiere decir que se ha producido un error.

Vamos a ver cómo se asocian los bits de paridad a un código. La Tabla 2.10 enu­mera los bits de paridad de cada número BCD, tanto en el caso de paridad par comode paridad impar. El bit de paridad para cada número BCD se indica en la columna P.

Método de paridad para la detección de errores

102 • SISTEMAS DE NUMERACiÓN, OPERACIONES y CÓDIGOS

Page 29: Fundamentos sistemas digitales   cap 2

Es importante tener en cuenta que el diagrama de bloques mostrado está en formatosimplificado, y se ha prescindido de muchos detalles, que en est~ momento ~o sonesenciales. También se ha omitido la unidad remota que se mostro en el Capitulo 1,para hacer las cosas tan sencillas. como sea posible.

Inicialización del sistema. Antes de nada, el sistema se debe inicializar paraarrancar en los estados binarios correctos. En primer lugar, el contador y los registros

El sistema en su estado inicial;

\'Ti "'>'"(O)

(O).'

)..

N" total de pastillas envasadas

I

; (75)

01110101

(75)

Codifica"'i. darD~cimal:~CD· ..

Decodi- Pastillaslbote

fic~dor ~[_J'...•..BCD7- ~ ,

se eiit~ Display de7segmentos

Funcionamiento del sistemaLos diagramas de bloques de las Figuras 2.5, 2.6 Y2.7 muestran el estado d~l sistemaen determinados puntos del proceso. Los números binarios (tramados) ~ códigos B~D(en negrita) indican las entradas y salidas ~e cada bloque; ~ los ~ont.emdos de los dis­positivos de almacenamiento. El valor decimal de cada c~digo bmano o BCD se espe­cifica entre paréntesis. Las flechas gruesas representan líneas paralelas que con~ctanlos distintos bloques del sistema, y proporcionan caminos' para la transferencia enparalelo de datos. Por ejemplo, ocho bits de un número binario dado se presentansimultáneamente sobre las ocho líneas paralelas. Las líneas paralelas tales como éstas,comúnmente se denominan buses en la terminología de sistemas digitales.

APLICACIÓN A LOSSISTEMASDIGITALES • 105

fillwCD..WQ;!¡}W·t:O[1]CD··.~DCZlTeclado numérico

El sistema presentado en el Capítulo 1facilita un método sencillo para ilustrar cómolos códigos y números binarios se pueden utilizar en un sistema digital. Recuérdeseque el sistema controla el número depastillas de cada bote que se encuentra en unalínea de montaje de una planta farmacéutica. En esta sección, veremos un ejemplo delos códigos y números binarios que existen en variospuntos del sistema durante unafase delproceso. También determinará los códigos y números a través del sistema bajociertas condiciones especificas.

Al finalizar esta sección, el lector deberá ser capaz de:

• Explicar la finalidad de cada bloque funcional del sistema, en términos de códigos ynúmeros. • Analizar el sistema bajo condiciones específicas, en términos de númerosy códigos en determinados puntos.

2.12 • APLICACiÓN A LOS SISTEMAS DIGITALES

Solución. Puesto que se requiere paridad impar, cualquier grupo con un número parde 1ses incorrecto. Los siguientes grupos contienen error: 110011y 1100010101010.

Problema relacionado. En un sistema de paridad impar se recibe el siguiente carác­ter ASCII: 00110111. ¿Es correcto?

Un sistema de paridad impar recibe los siguientes grupos de códigos: 10110, 11010,110011,110101110100y 1100010101010.Determinar qué grupos, si hay alguno, tienenerror.

EJEMPLO 2.40

Problema relacionado. Añadir un bit de paridad par al código ASCII de 7 bitscorrespondiente a la letra K.

(b) ~~~.'111000~;':.

(e) i:H101101011111

(a) ~ilOlO(d) Flf1100011100101

:I~'" ~:~).1i

Solución. El bit de paridad par debe ser 1 o Ode modo que el número total de 1s seapar. El bit de paridad será el bit más a la izquierda (tramado).

104 • SISTEMAS DE NUMERACIÓN, OPERACIONES Y CÓDIGOS

Page 30: Fundamentos sistemas digitales   cap 2

Registro A

cuenta y uno. En realidad, como indica el contenido del contador de la Figura 2.6, hacontado 74 pastillas. Se observa que el registro B mantiene la suma binaria anterior(3750), que se ha pasado a BCD y luego a formato de 7 segmentos para el display. Elregistro B se actualiza cada vez que se llena un bote, pero no mientras se está llenando.

La salida del comparador está a nivel BAJO (O), ya que las entradas A y B no soniguales en este instante. En la entrada A hay un 75 binario, y en la entrada B un 74binario. La salida del sumador siempre indica la suma más reciente, en este caso,3824, pero este número no se almacena en el registro B hasta que el bote está lleno.

En el estado siguiente, como muestra la Figura 2.7, el contador ha alcanzado el. valor binario de 75, por 10 que la salida A = B del comparador pasa a estado ALTO (1),lo que da lugar a que ocurran varias cosas simultáneamente. Se detiene el flujo de pas­tillas, se permite que la nueva suma binaria (3825) a la salida del sumador se almace­ne en el registro B, y se inicia un avance de la cinta transportadora para colocar elsiguiente bote en posición. El número binario almacenado en el registro B, que es aho­ra la suma actual, se aplica al convertidor de código BCD-7 segmentos, y en formatode 7 segmentos se actualiza el display con el valor 3825. Tan pronto como se colocael siguiente bote, el contador se pone a cero y un nuevo ciclo comienza.

APLICACIÓN A LOSSISTEMASDIGITALES • 107

El sistema en proceso. Ahora supongamos que el sistema ha contado un total de 50botes (3750 pastillas), y se encuentra en el proceso de contar pastillas para el bote cin-

FIGURA 2.6El sistema ha contado 50 botes depastillas y está trabajando con el boté siguiente.

(74)11Un impulsopara cadapastilla

Contador

N° total de pastillas envasadasl· .......•.•........::

01110101

Registro-A

'(7;)(75)

Display de 7segmentos

Decodi-01110101 fi$~dorFB~7-

¡:li.K

Codifica­dor

Decimal --BCD

Pastillaslbote

Teclado numérico

wlIJGJ.WCDG] .QJWlIl~WDw

se deben poner a cero, para que la cuenta empiece a partir de cero. A continuación, elnúmero de pastillas (hasta 99) que se introducirá en cada bote, se introduce a travésdel teclado numérico, el cual se convierte de decimal a BCD mediante el codificador,y se almacena en el registro A.

En la Figura 2.5, el número decimal 75 se introduce a través del teclado numé­rico, lo que indica que en cada bote se introducirán 75 pastillas. Cada pulsación deteclado se codifica en BCD y el dato se envía, los 4 bits a la vez, al registro A, para seralmacenado. El código BCD de 8 bits se coloca en las líneas de salida del registro y seaplica al decodificador, el cual lo convierte de BCD a código de 7 segmentos para ilu­minar el display. Simultáneamente, el mismo código BCD se aplica al convertidor decódigo, el cual lo convierte a binario. El número binario resultante, 75, se presenta enla entrada A del comparador. Ahora el sistema está inicializado y listo para empezar acontar pastillas.

106 • SISTEMAS DE NUMERACIÓN, OPERACIONES y CÓDIGOS

Page 31: Fundamentos sistemas digitales   cap 2

• El complemento a 1 de un número binario se obtiene cambiando los 18 por Os,y los Ospor ls.• El complemento a 2 de un número binario puede obtenerse sumando 1 al complemento a 1.• La resta binaria puede realizarse mediante sumas, utilizando los métodos de complemento a 1 y

complemento a 2.• Un número binario positivo se representa mediante un bit de signo O.• Un número binario negativo se representa mediante un bit de signo 1.• Para las operaciones aritméticas, los números binarios negativos se representan en complemento

a loen complemento a 2.• En tilla operación de suma, se puede producir un desbordamiento cuando ambos números son

positivos o negativos. Un bit de signo incorrecto en la suma indica que se ha producido undesbordamiento.

• . El sistema denumeración hexadecimal está formado por 16dígitos y caracteres, de Ohasta 9 y deA hasta F.

• Un dígito hexadecimal se representa mediante un número binario de cuatro bits, y su principalutilidad es simplificar los modelos binarios y hacerlos más fáciles de leer.

• Un número decimal puede convertirse a hexadecimal por el método de la división sucesiva por16.

• El sistema de numeración octal se forma con ocho dígitos, de Ohasta 7.• Un número decimal puede convertirse a octal utilizando el método de la división sucesiva por 8.• La conversión octal binario se realiza reemplazando cada dígito octal por su equivalente binario

de tres bits. Para la conversión binario-octal se realiza el mismo proceso a la inversa.• Un número decimal se convierte a BCD reemplazando cada dígito decimal por el apropiado

código binario de cuatro bits.• El código ASCII es un código alfanumérico de siete bits, que se utiliza ampliamente en sistemas

de computadora para las entradas y salidas de información.

•. Las reglas básicas de la resta binaria son las siguientes:

• Un número binario es un grupo de bits con peso en el que el peso de cada número entero es unapotencia positiva de dos, y el peso de cada dígito fraccionario es una potencia negativa de dos.Los pesos de los números enteros aumentan de derecha a izquierda, del bit menos significativo almás significativo.

• Un número binario puede convertirse a número decimal sumando los valores decimales de lospesos de todos los ls del número binario.

• Un número entero decimal puede convertirse a binario utilizando la suma de pesos o el métodode la división sucesiva por 2.

• Una fracción decimal puede convertirse a binario uti1izando la suma de pesos o el método demultiplicación sucesiva por 2.

• Las reglas básicas de la suma binaria son las siguientes:

RESUMEN • 109108 • SISTEMAS DE NUMERACiÓN, OPERACIONES y CÓDIGOS

Page 32: Fundamentos sistemas digitales   cap 2

18. Utilizando la Tabla 2.7, indicar a qué código ASCII corresponde la palabra STOP

(a) 1010011101010010011111010000 o» 1010010100110010011101010000(e) 1001010110110110011101010001 (d) 1010011 101010010011101100100

17. El número BCD correspondiente al decimal 473 es

(a) 111011010 (b) 1100011100]1(e) 010001110011 (d) 010011110011

13. En el sistema de complemento a 2, el número binario 10010011 es igual al número decimal

(a)-19 (b)+109 (e) + 91 (d)-109

14. El número binario 101100111001010100001 escrito en octal es

(a) 5471230~ (b) 54712418 (e) 2634521s (d) 23162501~

15. El número binario 100011010 1000 11O1111 se puede escribir en hexadecimal como

(a) AD46716 (b) 8C46FI6 (e) 8D46FI6 (d) AE46F16

16. El número binario correspondiente a F7 A916 es

(a) 1111011110101001 (b) 1110111110101 001(e) 1111111010110001 (d) 1111011010101001

12. Un número binario en coma flotante de simple precisión tiene-un total de

(a) 8 bits (b) 16 bits (e) 24 bits (d) 32 bits

(d) 01011101

11. El número decimal - 34 expresado en complemento a 2 es

(a) oiouuo eb) 10100010 (e) 11011110

• AUTOTEST 1. 2x 101 + 8x 10° es igual a

(a) 10 (b) 280 (e) 2,8 (d) 28

2. El número binario 1101 es igual al número decimal

(a) 13 (b) 49 (e) 11 (d) 3

3. El número binario 11011101 es igual al número decimal

(a) 121 (b) 221 (e) 441 (d) 256

4. El número decimal 17 es igual al número binario

(a) 10010 (b) 11000 (e) 10001 (d) 01001

S. El número decimal 175 es igual al número binario

(a) 11001111 (b) 10101110 (e) 1O101111 (d) 11101111

6. La suma de 11010 + 01111 es igual a

(a) 101001 (b) 101010 Ce) 110101 (d) 101000

7. La diferencia de 110 - 010 es igual a

(a) 001 (b) 010 (e) 101 (d) 100

8. El complemento a 1 de 10111001 es

(a) 01000111 (b) 01000110 (e) 11000110 (d) 10101010

9. El complemento a 2 de 1100 1000 es

(a) [j0110111 o» 00110001 Ce) 01001000 (d) 00111000

10. El número decimal +122 expresado en complemento a 2 es

(a) 01111010 (b) 11111010 (e) 01000101 (d) 10000101

AUTOTEST • 111

Mantisa La magnitud de un número en coma flotante.

Número en coma flotante Representación de un número basada en la notacióncientífica, en la que el número consta de un exponente, una mantísa y un signo.

Octal Describe un sistema de numeración en base ocho.

Paridad En relación a los códigos binarios, tener un número par o impar de 1s en ungrupo de código.

Peso El valor de un dígito en un número en función de su posición dentro delnúmero.

Desbordamiento La condición que se produce cuando el número de bits en unasuma excede el número de bits de cada uno de los números que se suman.

Dígito Símbolo utilizado para expresar una cantidad.

Entero. Un número entero, sin parte fraccionaria.

Exponente La parte de un número en coma flotante que representa el número deposiciones que se desplaza la coma decimal (o coma binaria).

Hexadecimal Describe un sistema de numeración en base 16.

Estos términos también se encuentran en el glosario del final del libro.

Acarreo Dígito generado cuando la suma de dos dígitos binarios excede de 1.

ACSII American Standard Code for Information Interchange, código estándar ame­ricano para el intercambio de información; el código alfanumérico más utilizado.

Alfanumérico Que contiene números, letras y otros caracteres.

BCD Binary Coded Decimal, código decimal binario, código digital en el que cadadígito decimal, de O a 9, se representa mediante un grupo de cuatro bits.

Bit de signo El bit más a la izquierda de un número binario que designa si el núme­ro es positivo (O) o negativo (1).

Bit más significativo (MSB, Most Significant Bit) El bit más a la izquierda de unnúmero entero o código binario.

Bit menos significativo (LSB, Least Significant Bit) Generalmente, el bit de mása la derecha de un número entero o código binario.

Byte Grupo de ocho bits.

Código Gray Código digital sin pesos caracterizado por el cambio de un único bitentre números codificados adyacentes en una secuencia.

Complemento El inverso u opuesto de un número.

Decimal Describe un sistema de numeración en base diez.

• PALABRASCLAVE

110 • SISTEMAS DE NUMERACiÓN, OPERACIONES y CÓDIGOS

Page 33: Fundamentos sistemas digitales   cap 2

29. Convertir a binario cada pareja de números decimales y sumarlos utilizando el sistema de com­plemento a 2:(a) 33 y 15 (b) 56 Y-27 (e) -46 y 25 (d) -110 Y-84

30. Realizar las siguientes sumas utilizando el sistema de complemento a 2(a) 00010110 + 00110011 (b) 01110000 + 10101111

31. Realizar las siguientes sumas utilizando el sistema de complemento a 2(a) 10001100 + 00111001 (b) 11011001 + 111O0111

32. Realizar las siguientes restas utilizando el sistema de complemento a 2(a) 00110011 - 00010000 (b) 01100101 - 11101000

33. Multiplicar 01101010 por 11110001utilizando el sistema de complemento a 2.34. Dividir 01000100 entre 00011001 utilizando el sistema de complemento a 2.

21. Expresar en formato binario de 8 bits signo-magnitud los números decimales:(a) +29 (h) -85 (e) + 100 (d) -123

22. Expresar cada número decimal como un número de 8 bits en el sistema de complemento al:(a) -34 (b) +57 (e) -99 (d) + 115

23. Expresar cada número decimal corno un número de 8 bits en el sistema de complemento a 2:(a) + 12 (b) -68 Ce) +101 (d) -125

24. Determinar el valor decimal correspondiente a cada número binario con signo en formato sig­no-magnitud:(a) 10011001 (b) 01110100 (e) 1011Illl

25. Determinarel valordecimal correspondientea cada número binariocon signo en formato comple­mento a 1:(a) 10011001 (b) oiuoico Ce) 10111111

26. Determinarel valordecimal correspondientea cada número binario con signo en formato comple­mentoa2:(a) 10011001 (b) 01110100 (e) 10111111

27. Expresar cada uno los siguientes números binarios signo-magnitud en formato de coma flotan­te de simple precisión:(a) 01l11100001O1011 (b) 100110000011000

28. Determinar los valores de los siguientes números en coma flotante de simple precisión:(a) 1 10000001 01001001110001000000000(b) O 11001100 10000111110100100000000

SECCiÓN2.7 Operaciones aritméticas de números con signo

16. Realizar la sustracción directa de los siguientes números binarios:(a) 11 - 1 (b) 101- 100 (e) 110- 101(d) 1110- 11 (e) 1100- 1001 (f) 11010 - 10111

17. Realizar las siguientes multiplicaciones binarias:(a) 11x 11 (h) 100 x 10 (e) 111x 101(d) 1001x 110 (e) 1101 x 1101 (f) 1110x 1101

18. Dividir los números binarios siguientes:(a) 100 -i- 10 (b) 1001+ 11 (e) 1100 -i- 100

SECCiÓN2.5 Complemento a 1 y complemento a 2 de los números binarios

19. Determinar el complemento a 1de los números binarios:(a) 101 (b) 110 (e) 1010(d) 11010111 (e) 1110101 (f) 00001

20. Determinar el complemento a 2 de los números binarios siguientes utilizando cualquier método:(a) 10 o» 111 (e) 1001 (d) 1101(e) 11100 (f) 10011 (g) 10110000 (h) 00111101

SECCiÓN2.6 Números con signo

PROBLEMAS • 113

(e) 101 + 11(f) 1101+ 1011

15. Sumar los números binarios:(a) 11+ 01 (b) 10+ 10(d) 111+ 110 (e) 1001 + 101

SECCiÓN2.3 Conversión decimal-binario11. Convertir a binario cada uno de los números decimales indicados utilizando el método de la

suma de pesos.(a) 10 (b) 17 (e) 24 (d) 48(e) 61 (f) 93 (g) 125 (h) 186

12. Convertir a binario cada uno de los números decimales fraccionarios indicados utilizando elmétodo de la suma de pesos.(a) 0,32 (b) 0,246 (e) 0,0981

13. Convertir a binario cada uno de los números decimales indicados utilizando la división sucesi­va por 2.(a) 15 eb) 21 (e) 28 (d) 34(e) 40 (f) 59 (g) 65 (h) 73

14. Convertir a binario cada uno de los números decimales fraccionarios indicados utilizando lamultiplicación sucesiva por 2.(a) 0,98 (b) 0,347 .(e) 0,9028

SECCiÓN2.4 Aritmética binaria

(e) seis(j) once

7. Convertir a decimal los siguientes números binarios:(a) 110011,11 (b) 101010,01 (e) 1000001,l1J (d) 1111000,101(e) 1011100,10101 (f) mOOOl,OOOI (g) 1011010,1010 (h) 1111Jll,1l111

8. ¿Cuál es el mayor número decimal que se puede representar con cada una de las siguientes can­tidades de dígitos binarios (bits)?(a) dos (b) tres (e) cuatro (d) cinco(f) siete (g) ocho (h) nueve (í) diez

9. ¿Cuántos bits se requieren para representar los siguientes números decimales?(a) 17 (b) 35 (e) 49 (d) 68(e) 81 (f) 114 (g) 132 (h) 205

10. Generar la secuencia binaria para las secuencias decimales:(a)deOa7 (b)de8a15 (e)deJ6a31(d) de 32 a 63 (e) de 64 a 75

(d) 10000(h) 11111

(d) 1000(h) 1111

5. Convertir a decimal los siguientes números binarios:(a) 11 (b) 100 (e) 1.11(e) 1001 (f) 1100 (g) 1011

6. Convertir a decimal los siguientes números binarios:(a) 1110 (b) 1010 (e) 11100(e) 10101 (f) 11101 (g) 10111

• PROBLEMAS SECCiÓN2.1 Números decimales1. ¿Cuál es el peso del dígito 6 en cada uno de los siguientes números decimales?

(a) 1.386 (b) 54.692 (e) 671.9202. Expresar cada uno de los siguientes números decimales como potencias de diez.

(a) 10 (b) 100 (e) 10.000 (d) 1.000.0003. Hallar el valor de cada dígito en los siguientes números decimales:

(a) 471 (b) 9.356 (e) 125.0004. ¿Hasta qué número puede contar con cuatro dígitos decimales?

SECCiÓN2.2 Números binarios

112 • SISTEMAS DE NUMERACiÓN, OPERACIONES y CÓDIGOS

Page 34: Fundamentos sistemas digitales   cap 2

61. Determinar cuáles de los siguientes códigos con paridad par son erróneos:(a) 100110010 (b) 011101010 (e) 10111111010001010

62. Determinar cuáles de los siguientes códigos con paridad impar son erróneos;(a) ]l110110 (b) 00110001 (e) 01010101010101010

63. Añadir el bit de paridad par apropiado a los siguientes bytes de datos:(a) 10100100 (b) 00001001 (e) 11111110

SECCiÓN 2.12 Aplicación a los sistemas digitales64. En el sistema de control y recuento de pastillas; ¿qué limita el número máximo de pastillas por

bote que se puede preseleccionar en el sistema?

30 INPUT A, B

53. En una determinada aplicación se producen ciclos de una secuencia binaria de 4 bits de 1111 a0000 de forma periódica. Existen cuatro variaciones de bit, y debido a retrasos del circuito,estas variaciones pueden no producirse en el mismo instante. Por ejemplo, si el LSB cambia elprimero, entonces durante la transición de 1111 a 0000 aparecerá el número 1110, y puede sermal interpretado por el sistema. Ilustrar cómo resuelve este problema el código Gray.

54. Convertir a código Gray los números binarios:(a) 11011 (b) 1001010 (e) 1111011101110

55. Convertir a binario los números en código Gray:(a) 1010 (b) 00010 (e) 11000010001

56. Convertir a código ASCII cada uno de los siguientes números decimales. Utilice la Tabla 2.7.(a) 1 (b) 3 (e) 6 (d) 10 (e) 18(f) 29 (g) 56 (h) 75 (í) 107

57. Determinar el carácter de cada uno de los siguientes códigos ASCII. Utilice la Tabla 2.7.(a) 0011000 (b) 1001010 (e) 0111101(d) 0100011 (e) 0111110 (l) 1000010

58. Decodificar el siguiente mensaje codificado en ASCII:10010001100101 11011001101100 non 11 010111001000001001000 1101111 111O111 010000011000011110010 1100101 010000011110011101111 1110101Ollllll

59. Escribir en hexadecimal el mensaje del problema 58.

60. Convertir a código ASCII la siguiente instrucción de programa para una computadora:

SECCiÓN 2.11 Códigos digitales y paridad

(d) 17 + 12(h) 295 + 157

(b) 0111 + 0101(d) 1001 + 0111(l) 01010001 + 010 l1000

(b) 0101 + 0011(d) 1000 + 0001(O 01100100 + 00110011(h) 10000101 + 00010011

50. Sumar los siguientes números en BCD:(a) 0010 + 0001(e) 0111 + 0010(e) 00011000 + 00010001(g) 01000000 + 01000111

51. Sumar los siguientes números en BCD:(a) 1000 + 0110(e) 1001 + 1000(e) 00100101 + 00100111(g) 10011000 + 1001O111(h) 010101100001 + 011100001000

52. Convertir a BCD cada pareja de números decimales y sumarlos:(a) 4+ 3 (b) 5+ 2 (e) 6 + 4(e) 28 + 23 (f) 65 + 58 (g) 113 + 101

PROBLEMAS • 115

(e) 00011001

49. Convertir a decimal los números en BCD:(a) 10000000· (b) 001000110111(e) 001101000110 (d) 010000100001(e) 011101010100 (f) 100000000000(g) 100101111000. (h) 0001011010000011(i) 1001000000011000 (j) 0110011001100111

(d) 00011000(i) 100001110000

(i) 1051(d) 150(h) 547

(d) 21(h) 57(1) 156

(d) 101010 (e) 1100(i) 1111111 01111 000

(e) 5408(d) 3218(i) 1002138

47. Convertir a BCD los siguientes números decimales:WIM 001~ WIU(e) 186 (f) 210 (g) 359

48. Convertir a decimal los números en BCD:(a) 0001 (b) 0110 (e) 1001(l) 00110010 (g) 01000101 (h) 10011000

42. Convertir a octal los números decimales siguientes utilizando la división sucesiva por 8:(a) 15 (b) 27 (e) 46 (d) 70(e) 100 (f) 142 (g) 219 (h) 435

43. Convertir a binario los números octales:(a) 138 (b) 578(f) 4653~ (g) 13271 R

46. Convertir los números decimales del problema 45 a binario normal, y comparar el número debits requerido con los que se requieren para BCD.

(e) 1038(d) 648(i) 77658

(d) 52(h) 6500

(d) so.,(h) 70016

(d) 5C816

45. Convertir a BCD 8421 los siguientes números decimales:(a) 10 (b) 13 Ce) 18(e) 25 (l) 36 (g) 44(i) 69 (j) 98 (k) 125

SECCiÓN 2.10 Código decimal binario (BCD)

(e) 110111(h) 10110000011

44. Convertir a octal los números binarios:(a) 111 (b) 10(l) 1011110 (g) 101100011001

(e) 1018(h) 456008

41. Convertir a decimal los números octales:(a) 128 (b) 278 (e) 568(O 5578 (g) 1638 (h) 10243

SECCiÓN 2.9 Números octales

(e) FFI6 + BBI6

35. Convertir a binario los números hexadecimales:(a) 3816 (b) 5916 (e) A1416(e) 410016 (l) FB 1716 (g) 8A9Dló

36. Convertir a hexadecimal los números binarios:(a) 1110 (b) ro (e) 10111(d) 10100110 (e) 1111110000 (l) 100110000010

37. Convertir a decimal los números hexadecimales:(a) 2316 (b) 9216 (e) lAló(e) F31ó (l) EBI6 (g) 5C21ó

38. Convertir a hexadecimal ]08 números decimales:(a) 8 (b) 14 Ce) 33(e) 284 (l) 2890 (g) 4019

39. Realizar las siguientes sumas:(a) 3716+ 2916 (b) AOl6+ 6BI6

40. Realizar las siguientes sustracciones:(a) 5116-4016 (b) C816-3A16

SECCiÓN 2.8 Números hexadecimales

114 • SISTEMASDE NUMERACiÓN, OPERACIONES Y CÓDIGOS

Page 35: Fundamentos sistemas digitales   cap 2

1. La salida del comparador pasa a nivel ALTO (H) cuando el número actual de pastillas contadasen un bote es igual al número preseleccionado.

2. El número de pastillas/bote en el display cambia cuando se introduce un nuevo número a travésdel teclado numérico.

3. El número total de pastillas en el display de totales cambia cada vez que se llena un bote.

(d) 00101011

3. (a) K: 1001011--74B16 (b) r: 1110010-7 7216(e) $: 0100100 --724J6 (d) +: 0101011 -72B16

4. (a) 01001011 (b) OmOOl0 (e) 00100100

SECCiÓN 2.12

(e) 110102= 10111Gray(e) 11101Gray = 101102

(b) 10102 = 1111Oray(b) IOJO Gray = 11002

SECCiÓN 2.11l. (a) 11002 = 1010 Gray2. (a) 1000Gray = 11112

4. Una suma de 4 bits no es válida cuando es mayor que 9JO.

(e) 000101010111 = 157JO(h) 001001111000= 278103. (a) 10001001 = 89JO

(e) 56248 = 101110010100(e) 10111111001= 27718

2. (a) 98JO= 142g

3. (a) 468 = 1001104. (a) 110101111= 6578

SECCiÓN 2.101. (a) 0010: 2 (h) 1000:8 (e) 0001: 1 (d) 0100: 4

2. (a):6Jo = 0110 (b) 151il= 00010101 (e) 27310 = 001001110011

(d) 84910 = 100001001001

(b) 16310 = 2438

(b) 7238 = 1ll0lOOl1(b) 1001100010= 1142~

(h) 1258 = 8510l. (a) 738 = 5910

4. 57310 = 23Dló

(b) 3FI6+ 2AI6= 6916(b) 94'6 - 5CJ6 = 38J6

3. 9B3016= 39.7281()S. (a) 1816+ 3416= 4CI66. (a) 7516- 2116= 5416

SECCiÓN 2.9

(b) 1l001ll01O00 = CE816(b) 3A51ó= 001110100101

3.. 01110111- 00110010 = 010001014. El signo del producto es positivo.S. 00000101 x 01111111== 010011110116. El signo del cociente es negativo7. 00110000+ 00001100 = 00000100

SECCiÓN 2.81. (a) 10110011= B316

2. (a) 5716= 01010111(e) F80BI6 = 1111100000001011

RESPUESTASA LASREVISIONES DE CADA SECCiÓN • 117

l. Casos de la suma: el número positivo es el mayor, el número negativo es el mayor (en valorabsoluto), ambos son positivos y ambos son negativos.

2. 00100001 + 10111100= 11011101

l. Signo-magnitud de +9 = 000010012. Complemento al: -33 = 110111103. Complemento a 2: -46 = 110100104. Exponente y mantisa

SECCiÓN 2.7

SECCiÓN 2.6

(b) 1001- 0111= 0010(b) 1100.;. 011 = 100

(b) 10111+ 01101 = 100100

(e) 0,375 = 0,0112. (a) 14= 1110 (b) 21 = 10101

SECCiÓN 2.41. (a) 1101+ 1010== 101112. (a) 1101-0100= 10013. (a) 110x 111 = 101010

SECCiÓN 2.51. (a) Complemento a 1de 00011010 = 11100101

(b) Complemento a 1de 11110111= 00001000(e) Complemento a 1de 10001101 = 01110010

2. (a) Complemento a 2 de 00010110 = 11101010(b) Complemento a 2 de 11111100= 00000100(e) Complemento a 2 de 10010001= 01101111

Ce) 45,5 = 101101,1

SECCiÓN 2.11. (a) 1370: 10 (b) 6725: 100 (e) 7051: 1000 (d) 58,72: 0,12. (a) 51 = (5 xlO) + (1 x 1)

(b) 137 = (l x 100)+ (3 x 10)+ (7 x 1)(e) 1492 = (1 x 1000) + (4 x100) + (9 x 10) + (2 x 1)(d) 106,58 = (l x 100) + (Ox 10) + (6 xl) + (5 x 0,1) + (8 x 0,01)

SECCiÓN 2.21. 28-1 = 2552. El peso es 163. 10111101,011= 189,375

SECCIÓN 2.31. (a) 23 = 10111 (b) 57 = 111001

• RESPUESTASALASREVISIONESDE CADASECCiÓN

66. Determinar el número máximo de pastillas que en total puede contar el sistema. Explicar quécambios se requerirían para aumentar este número.

(b) En la entrada A del comparador(d) En el registro B

65. Supongamos que el sistema se inicializa para 25 pastillas por bote. Determinar las cantidadesbinarias en cada una de las siguientes posiciones dentro del sistema, después de haber introdu­cido 15pastillas en el bote número 1000:(a) En el registro A(e) En el contador(e) En la salida del sumador.

116 • SISTEMAS DE NUMERACiÓN, OPERACIONES y CÓDIGOS

Page 36: Fundamentos sistemas digitales   cap 2

8. (h)16. (a)

7. (d)15. Ce)

6. (a)14. (b)

5. (e)13. (d)

4. (e)12. (d)

3. (b)11. Ce)

• RESPUESTASALAUTOTEST

2. (a)10. (a)18. (a)

1. (d)9. (d)17. (e)

2.34 82,276102.35 ,10011001011010002.36 100000102.37 (a) 111011(Gray) (b) III O102

2.38 La secuencia de códigos para 80 INPUT Y es 381630lÓ201649164E1Ó50ló5516541620lÓ59162.39 010010112.40 Sí

RESPUESTAS AL AUTOTEST • 119

(b) 0101012 = 2110= 258(d) 1111010101102= 392610 = 75268

2.32 125076282.33 1001011001110011

2.15 01110111 = +119102.16 11101011= -2010

2.17 11010111= -41102.18 110000100010100110000000002.19 010101012.20 000100012.21 10010001102.22 (83)(-59) = -4897 (10110011011111en complemento a 2)2.23 100.;. 25 = 4 (O100)2.24 4F79C162.25 01101011110100112

2.26 6BDJ6 = 011010111101= 2111+ 2~+ 27 + 25 + 24 + 23 + 22 + 211

= 1024 + 512 + 128 + 32 + 16 + 8 + 4 + 1 = 172510

2.27 60A'6 = (6 X 256) + (O X 16) + (10 X 1) = 1546102.28 259110 = AlFIl>2.29 4C16 + 3AI6 = 8616

2.30 BCDI6- 17316= A5AI62.31 (a) 0010112 = 1110 = 13~

(e) 0011000002 = 9610 = ]40&

0001001111101100

0001001111101101

0001001110010011

+19-19

",:,.: Complemento

TABLA 2.11

• RESPUESTAS 2.1A LOS 2.2EJERCICIOSRELACIO- 2.3NADOS 2.4DE LOS 2.5EJEMPLOS 2.6

2.72.82.92.102.11

9 tiene un valor de 900, 3 tiene un valor de 30 y 9 tiene un valor de 9.6 tiene un valor de 60, 7 tiene un valor de 7, 9 tiene un valor de 911O(0,9), 2 tiene un valor de21100(0,02),4 tiene un valor de 4/1000 (0,004).

10010001 = 128+ 16+ 1= 14510,111= 2 + 0,5 + 0,25 + 0,125 = 2,875125:=64 + 32 + 16+ 8 + 4 + 1= 111110139 = 100lll1111+ 1100::= 11011

111-100=011110-101 =0011101 x 1010 = 100000101100.;. 100 = 11

2.12 001101012.13 010000002.14 Véase la Tabla 2.11.

118 • SISTEMAS DE NUMERACiÓN, OPERACIONES y CÓDIGOS