TP 1
TP 1
TP 1
M. Estefanı́a Pereyra
6 de abril de 2021
Binario a decimal: para convertir un número binario a decimal se debe realizar la sumatoria del
producto de cada bit por el peso de la columna correspondiente, esto es:
101102 = 1 ∗ 24 + 0 ∗ 23 + 1 ∗ 22 + 1 ∗ 21 + 0 ∗ 20 = 2210
Decimal a Binario: la conversión de un número decimal a binario se puede realizar de dos for-
mas, comenzando desde la columna izquierda del número binario resultante o desde la derecha.
Comenzando desde el bit mas significativo, se comienza con la mayor potencia de 2 menor o igual
al numero decimal, esto es:
8410 → binario
1
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
84 ≥ 64 → 1 (en la columna 26 )
84 − 64 = 20
20 < 32 → 0 (en la columna 25 )
20 ≥ 16 → 1 (en la columna 24 )
20 − 16 = 4
4 < 8 → 0 (en la columna 23 )
4 ≥ 4 → 1 (en la columna 22 )
4−4=0
0 < 2 → 0 (en la columna 21 )
0 < 1 → 0 (en la columna 20 )
8410 = 10101002
Comenzando desde el bit menos significativo del número binario, se divide repetidamente el número
decimal por 2. El resto de cada división es asignado a cada columna del número binario. Ejemplo:
8410 → binario
84/2 = 42 → resto = 0 (en la columna 20 )
42/2 = 21 → resto = 0 (en la columna 21 )
21/2 = 10 → resto = 1 (en la columna 22 )
10/2 = 5 → resto = 0 (en la columna 23 )
5/2 = 2 → resto = 1 (en la columna 24 )
2/2 = 1 → resto = 0 (en la columna 25 )
1/2 = 0 → resto = 1 (en la columna 26 )
8410 = 10101002
2
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
42110 → binario
421/2 = 210 → resto = 1 (en la columna 20 )
210/2 = 105 → resto = 0 (en la columna 21 )
105/2 = 52 → resto = 1 (en la columna 22 )
52/2 = 26 → resto = 0 (en la columna 23 )
26/2 = 13 → resto = 0 (en la columna 24 )
13/2 = 6 → resto = 1 (en la columna 25 )
6/2 = 3 → resto = 0 (en la columna 26 )
3/2 = 1 → resto = 1 (en la columna 27 )
1/2 = 0 → resto = 1 (en la columna 28 )
42110 = 1101001012
110101112 = 1 ∗ 27 + 1 ∗ 26 + 0 ∗ 25 + 1 ∗ 24 + 0 ∗ 23 + 1 ∗ 22 + 1 ∗ 21 + 1 ∗ 20
110101112 = 128 + 64 + 0 + 16 + 0 + 4 + 2 + 1 = 21510
3
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
23,4310 → binario
Parte entera:
23/2 = 11 → resto = 1 (en la columna 20 )
11/2 = 5 → resto = 1 (en la columna 21 )
5/2 = 2 → resto = 1 (en la columna 22 )
2/2 = 1 → resto = 0 (en la columna 23 )
1/2 = 0 → resto = 1 (en la columna 24 )
Parte decimal:
0,43 ∗ 2 = 0,86 → entero = 0 (en la columna 2− 1)
0,86 ∗ 2 = 1,72 → entero = 1 (en la columna 2− 2)
0,72 ∗ 2 = 1,44 → entero = 1 (en la columna 2− 3)
0,44 ∗ 2 = 0,88 → entero = 0 (en la columna 2− 4)
0,88 ∗ 2 = 1,76 → entero = 1 (en la columna 2− 5)
0,76 ∗ 2 = 1,52 → entero = 1 (en la columna 2− 6)
0,52 ∗ 2 = 1,04 → entero = 1 (en la columna 2− 7)
0,04 ∗ 2 = 0,08 → entero = 0 (en la columna 2− 8)
23,4310 = 10111,011011102
2n = 0,01027
ln(0,01027)
n= ln(2)
= −6,605
tomamos el entero menor,
n = −7
4
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
por lo tanto, para obtener un error menor al 0,1 % debemos utilizar 7 bits para representar
la parte decimal.
Parte entera:
1010 = 10102
Parte decimal:
0,27 ∗ 2 = 0,54 → entero = 0 (en la columna 2− 1)
0,54 ∗ 2 = 1,08 → entero = 1 (en la columna 2− 2)
0,08 ∗ 2 = 0,16 → entero = 0 (en la columna 2− 3)
0,16 ∗ 2 = 0,32 → entero = 0 (en la columna 2− 4)
0,32 ∗ 2 = 0,64 → entero = 0 (en la columna 2− 5)
0,64 ∗ 2 = 1,28 → entero = 1 (en la columna 2− 6)
0,28 ∗ 2 = 0,56 → entero = 0 (en la columna 2− 7)
23,4310 = 1010,01000102
Comprobación:
1010,0100012 = 1 ∗ 23 + 0 ∗ 22 + 1 ∗ 21 + 0 ∗ 20 + 0 ∗ 2−1 + 1 ∗ 2−2 + 0 ∗ 2−3 + 0 ∗ 2−4
+ 0 ∗ 2−5 + 1 ∗ 2−6
1010,0100012 = 10,26562510
donde,
10,2710 − 10,26562510 = 0,004375 < 0,01027
Hexadecimal a binario: cada dı́gito hexadecimal se corresponde con 4 dı́gitos binario (la conversión
5
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
Hexadecimal a decimal: se debe realizar la sumatoria del producto de cada dı́gito hexadecimal
(equivalente decimal) por el peso de la columna correspondiente, esto es.
2ED16 = 2 ∗ 162 + E ∗ 161 + D ∗ 160
2ED16 = 2 ∗ 162 + 14 ∗ 161 + 13 ∗ 160
2ED16 = 74910
Binario a hexadecimal: Se toman de a 4 bits comenzando desde la derecha y convirtiendo a su
equivalente en hexadecimal.
11110102 → hexadecimal
10102 = A16
1112 = 716
11110102 = 7A16
6
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
Comenzando desde el dı́gito de la derecha, se divide repetidamente el número decimal por 16. El
resto va en cada columna. Ejemplo:
33310 → hexadecimal
333/16 = 20 → resto = 1310 = D16 (en la columna 160 )
20/16 = 1 → resto = 410 = 416 (en la columna 161 )
1/16 = 0 → resto = 110 = 116 (en la columna 162 )
33310 = 14D16
7
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
Rango: para N -bits, [−2N −1 , 2N −1 − 1]. Existe un número negativo más que positivos ya que no
existe el −0.
Representación en Exceso a K, K=7 : en esta representación a cada número se le suma un valor
fijo, por lo tanto cada número está en exceso por dicho valor. Este formato es habitual para la
representación del exponente en números en punto flotante. Por ejemplo para N = 4, la repre-
sentación en exceso a 2N −1 − 1 = 7 permite representar los 24 = 16 números en exceso a 7. Si
queremos representar −410 en exceso a 7, debemos sumar el exceso y luego convertir a binario,
−410 + 710 = 310 → 00112 .
Rango: posee rango asimétrico [−2N −1 + 1, 2N −1 ].
Comparación de sistemas numéricos:
Representación Rango
Sin signo [0, 2N − 1]
Signo+Magnitud [−2N −1 + 1, 2N −1 − 1]
Complemento a 1 [−2N −1 + 1, 2N −1 − 1]
Complemento a 2 [−2N −1 , 2N −1 − 1]
Exceso 7 [−2N −1 + 1, 2N −1 ]
8
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
Los sistemas digitales usualmente operan con un número fijo de dı́gitos. Si el resultado es demasiado
grande que no entra en el número fijo de dı́gitos, entonces se dice que la adición desbordó (overflow ).
Por ejemplo, un número de 4-bits tiene un rango de [0, 15]. La adición de 4-bits desborda si el resultado
es mayor a 15. El quinto bit es descartado produciendo un resultado de 4-bits erróneo. La suma de dos
números positivos o negativos de N -bits puede causar overflow si el resultado es mayor que 2N −1 − 1
o menor a −2N −1 . La suma de un número positivo con un número negativo nunca produce overflow. A
diferencia de los números sin signo, un acarreo en del bit más significativo no implica overflow. Existe
overflow cuando los dos números a sumar tienen el mismo signo y el resultado tiene signo opuesto. A
continuación se muestran ejemplos de casos de overflow.
0100 1000
0101 (+5) 1001 (−7)
+ 0100 (+4) + 1010 (−6)
1001 = −7 1✁ 0011 = 3
Resta
La sustracción de dos números puede considerarse como la suma del primer número y el opuesto
del segundo. El opuesto de un número en la representación de complemento a dos, se obtiene mediante
la transformación complemento a dos. Esto es, obteniendo el complemento a 1 del número original y
sumándole 1 al binario obtenido. Por lo tanto, para sustraer un número (el sustraendo) de otro (el
minuendo), se forma el complemento a dos del sustraendo y se le suma al minuendo. A continuación se
muestran ejemplos de sustracción de números con signo de 4-bits representados en complemento a dos.
Casos de desbordamiento:
0111 1000
0111 (+7) 1010 (−6)
+ 0111 − (−7) + 1100 − (+4)
1110 = −2 1✁ 0110 = 6
Sistemas Numéricos
Las computadoras operan tanto con enteros como con fracciones. Hasta ahora solo consideramos las
representaciones de enteros con signo y sin signo. Ahora introduciremos la representación de números
9
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
racionales mediante los sistemas numéricos de punto fijo y punto flotante. Los números en punto fijo son
semejantes a los decimales; algunos bits representan la parte entera y los restantes representan la parte
fraccional. Por otra parte, los números en punto flotante son análogos a la notación cientı́fica, donde se
tiene una mantisa y un exponente.
Punto fijo
Notación: la notación en punto fijo tiene implı́cito un punto binario entre los bits que representan
la parte entera y los bits que representan la parte fraccional, de forma similar al punto decimal
que existe entre la parte entera y fraccional de un número decimal cualquiera. Se dice implı́cito ya
que al igual que cualquier número binario, los números en punto fijo son una colección de bits y
no existe una forma de conocer la existencia del punto binario salvo a través de un acuerdo entre
las personas que interpretan el número. Por ejemplo, un número en punto fijo con cuatro bits para
representar enteros (high word ) y cuatro bits para la fracción (low word ) es:
01101100
0110,1100
Signo: los números en punto fijo signados pueden usar la notación de signo+magnitud o de com-
plemento a dos. Por ejemplo, la representación del número −2,375, con 4 bits para la parte entera
y 4 bits para la parte fraccional, usando ambas notaciones se muestra a continuación.
Valor absoluto:
0010,0110
Signo y magnitud:
1010,0110
Complemento a dos:
10
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
1101,1010
Aritmética en punto fijo: la aritmética en punto fijo es similar a lo visto con enteros. Usando la
representación en complemento a dos, en la suma y la resta se debe hacer coincidir las posiciones
de la coma y luego realizar la operación aritmética como si el número fuera entero. Ejemplo: Sumar
0,75 + (−0,625) usando números de punto fijo.
0,7510 =0000,11002
−0,62510 →0000,10102 Magnitud
1111,01012 Complemento a uno
1111,01102 Complemento a dos
0000,1100 (+0,750)
+ 1111,0110 (−0,625)
10000,0010 = +0,125
Punto flotante
Los números en punto flotante son análogos a la notación cientı́fica. Como en el caso de números de
base decimal, también es necesario en algunos casos trabajar con números muy grandes o pequeños. Para
ello resulta más cómodo poder expresarlos en un formato que permita operar con números de diferente
posición de la coma. A éstos se los denomina números de coma flotante. Al igual que la notación cientı́fica,
los números en punto flotante tienen un signo, mantisa (M), base (B) y exponente (e).
±M ∗ B e
Dependiendo del formato del punto flotante se utiliza un número fijo de bits para representar el bit de
signo, los bits del exponente y los bits de mantisa.
eieee = e + 2m−1 − 1
Donde e será el exponente original y m es el número de bits del exponente en el formato elegido. El
punto flotante en formato de 32 bits usa 8 bits para el exponente (m = 8) y suma 127 al exponente
original.
11
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
Mantisa: la mantisa debe cumplir la condición, 1 ≤ mantisa < 2. Por lo tanto la parte entera será
siempre 1 y no necesita ser almacenada. Solo se almacenan los bits de la parte decimal.
Signo: en el caso del punto flotante, en la mantisa se guarde siempre el valor absoluto de la misma.
El bit de signo identificará que tipo de número es,
1 → Negativo
0 → Positivo
Formatos
Precisión simple: son número en punto flotante de 32 bits, también denominados single-precision,
single o float.
Precisión doble: son números en punto flotante de 64 bits, también denominados doubles, que
proveen mayor precisión y rango.
Formato Número de bits Signo Exponente Mantisa (parte decimal)
Simple 32 1 8 23
Doble 64 1 11 52
Ejemplo
Representación en punto flotante formato precisión simple del número decimal 228:
Primero se debe convertir el número decimal a binario, 22810 = 111001002
Luego expresar el binario en notación cientı́fica, 111001002 = 1,11001x27
Codificar el bit de signo, en este caso será 0 por ser un número positivo.
Codificar el exponente en el formato de exceso a k.
Sean m = 8 bits para codificar el exponente y el exponente real a codificar e = 7, según al estándar
IEEE 754 se debe sumar k = 2m−1 − 1 = 127 a e.
eieee = 7 + 127 = 134 = 100001102
Codificar la mantisa, se usan 23 bits para representar la parte decimal del número, se inicia de
izquierda a derecha ubicando los bits después de la coma del número en notación cientı́fica y se
completan los restantes con 0s. M = 11001000000000000000000.
1 bit 8 bits 23 bits
0 10000110 11001000000000000000000
Signo Exponente Mantisa (parte decimal)
12
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
Comparar los exponentes: si e2 > e1 intercambiar los operandos, luego calcular d = e1 − e2 y poner
como exponente tentativo del resultado es = e1 .
1. Si los signos de los operando son iguales y Cout = 1, desplazar ms un lugar a la derecha,
ingresando en 1 del Cout (hubo overflow). Y ajustar el exponente.
2. Caso contrario, desplazar ms a la izquierda hasta obtener una mantisa normalizada. Nótese
que el primer desplazamiento a la izquierda hace ingresar a G, pero en los restantes se intro-
duce 0. Y ajustar el exponente. Ajustar R y S en caso de ser necesario, es decir, si G no pasó
a formar parte de la mantisa en el último paso, hacer R = G y S = R OR S.
Redondear el resultado en función de los valores de los bits R y S.En caso de producirse Cout = 1,
desplazar la mantisa del resultado a derecha, ajustando el exponente de manera acorde.
13
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
1. Si ambos operandos tienen el mismo signo, ese será el signo del resultado.
2. Caso contrario, el signo depende de cuál de los operandos es negativo, de si se intercambiaron
los operandos en el paso 3, de si en el paso 6 se reemplazó ms por su C2 (ms ), como se muestra
en la tabla,
Intercambio C2 (ms ) signo(x1 ) signo(x2 ) signo(s)
si + - -
si - + +
no no + - +
no no - + -
no si + - -
no si - + +
14
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
Redondeo
La norma IEEE-754 contempla cuatro modalidades de redondeo,
Todas estas modalidades de redondeo requieren el uso de bits adicionales de precisión, denominados
bits de guarda y se encuentran a la derecha del bit menos significativo. Los bits de guarda se conservan
temporalmente y son empleados en la normalización del resultado y durante el redondeo.
La norma IEEE-754 contempla tres bits de guarda, denominados guard (G), round (R) y sticky (S).
Roun (R) y sticky (S): la siguiente tabla resume el rol de los bits R y S en los distintos esquemas
de redondeo (donde p0 es el valor del dı́gito menos significativo del resultado). El bit S se calcula
haciendo OR entre los bits descartados ( los que no forman parte del resultado ni tampoco de G
ni R).
Ejemplo:
Suma y redondeo,
1,001000 x 23
+ 1,101001 x 2−1
⇓
1,001000 x 23
+ 0,0001101001 x 23
1,00111011 x 23
RS → R = 1, S = (0 OR 0 OR 1)
15
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
1,001110 x 23
+ 1
1,001111 x 23
Guard (G): el bit G se usa al normalizar el resultado preliminar de las operaciones aritméticas,
esto es, antes de aplicar el redondeo. En los casos en que no haga falta usar el bit G (cuando no
sea necesario normalizar el resultado) se deben ajustar los valores de los bits R y S de la siguiente
manera:
Rnuevo = Ganterior
Snuevo = Ranterior OR Santerior
16
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
Ejercicio 1:
Representar los siguientes números en la base solicitada,
1. 17458 en Decimal
2. 1849310 en Binario
3. 101010112 en Decimal
4. 1562610 en Hexadecimal
5. 34328 en Binario
6. 174610 en Octal
7. 13488216 en Binario
Ejercicio 2:
Representar los siguientes número en base 10 a binario, tomando 8 bit después de la coma.
1. 8,12510
2. 0,310
3. 0,4210
Ejercicio 3:
Representar los siguientes número en base 10 a binario, con un error máximo de 0,1 %.
1. 14,4510
2. 5,95510
3. 0,4710
Ejercicio 4:
Representar los siguientes números en base 2 a decimal,
1. 1011,0011012
2. 11,10101012
3. 0,1101110012
17
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
Ejercicio 5:
Representar en base 2 los siguientes números con la longitud indicada,
Número Decimal 1 byte 16 bits o medio Word
−51
−130
−32125
Indicar cual o cuales no pueden ser representados por 1 byte.
Ejercicio 6:
Realizar las siguientes operaciones aritméticas en base 2,
solución:
1. a) b)
00110000 00110000
00011101 (29) 00011101 (29)
+ 10110010 (178) + 10110010 (−78)
11001111 = 207 11001111 = −49
C2 (10110010) = 01001110 = 78
C2 (11001111) = 00110001 = 49
2.
18
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
000101101 (45)
− 011100101 (229)
000111111
000101101 (45)
+ 100011011 (−229)
101001000 = −184
para saber el valor absoluto del resultado que fue negativo se saca el complemento a dos del
mismo,
C2 (101001000) = 010111000 = 184
b) se agrega un bit más igual al bit de signo a la izquierda para evitar desborde,
000101101 (45)
− 111100101 (−27)
000111111
000101101 (45)
+ 000011011 (27)
001001000 = 72
el resultado fue positivo.
Ejercicio 7:
Exprese los siguientes números decimales en el formato 16 bits punto fijo signo+magnitud con ocho
bits enteros y ocho decimales. Exprese la respuesta en hexadecimal.
1. -13.5625
19
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
2. 42.3125
3. -17.15625
Solución:
1. -13.5626
Parte entera valor absoluto: 1310 = 000011012
Parte decimal valor absoluto: 0,562610 = 0,100100002
Número en formato signo+magnitud: −13,562510 = 10001101,100100002 = 0x8D9016
2. 42,312510 = 0x2A5016
3. −17,1562510 = 0x912816
Ejercicio 8:
Exprese los siguientes números decimales en el formato 12 bits punto fijo complemento a dos con seis
bits enteros y seis decimales. Exprese la respuesta en hexadecimal.
1. -30.5
2. 16.25
3. -8.078125
Ejercicio 9:
Exprese los números decimales del ejercicio 8 en el formato de punto flotante de simple precisión
IEEE 754. Exprese la respuesta en hexadecimal.
Solución:
1. -30.5
Valor en binario: −30,510 = −11110,12
Valor normalizado: −30,510 = −1,11101x24
Signo: 1
Exponente polarizado (eieee = e + 2m−1 − 1): eieee = 4 + 127 = 13110 = 100000112
Número en formato punto flotante de simple precisión IEEE 754:
1 10000011 111010000000000000000002 = 0xC1F 4000016
20
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
Ejercicio 10:
Sumar los siguientes números en punto flotante de simple precisión IEEE 754.
1. C0123456 + 81C564B7
2. D0B10301 + D1B43203
3. 5EF 10324 + 5E039020
Solución:
1. C0123456 + 81C564B7 = C012345616
2. D0B10301 + D1B43203 = D1E072C316
21
6 de abril de 2021 TÉCNICAS DIGITALES II M.E. Pereyra
Ejercicio 11:
Sumar los siguientes números en punto flotante de simple precisión IEEE 754, haciendo uso del
redondeo al más próximo y redondeo a cero.
x1 = 567F F F F F , x2 = 4A520000.
Ejercicio 12:
Sumar los siguientes números en punto flotante de simple precisión IEEE 754.
1. C0D20004 + 40DC0004
2. C0D20004 + 72407020
Ejercicio 13:
Sumar los siguientes números en punto flotante de simple precisión IEEE 754, haciendo uso del
redondeo al más próximo y redondeo a cero.
x1 = 47A069A0, x2 = C7E4D0C8.
22