Sistemas de numeración. Codificación binaria

Anuncio
Tema 3:
Sistemas de Numeración.
Numeración
Codificación Binaria
Escuela Politécnica Superior
Ingeniería Informática
Universidad Autónoma de Madrid
1
Sistemas de Numeración.
Codificación Binaria
O
B
J
E
T
I
V
O
S
Conocer los diferentes sistemas de
numeración y los códigos
alfanuméricos.
Aplicar las operaciones aritméticas a
los números binarios
Conversión entre los diferentes
sistemas de numeración.
Expresar y sumar números en BCD.
TEMA 3: SISTEMAS DE
NUMERACIÓN.
CODIFICACIÓN
BINARIA
3.1 Sistemas de numeración
3.2 Operaciones aritméticas
en binario
3.3 Código BCD. Aritmética
BCD
3.4 Representación de
números con signo
3.5 Representación de
números en punto fijo y
coma flotante
3 6 Códi
3.6
Códigos alfanuméricos
lf
éi
Bibliografía Tema 3:
- Fundamentos de Sistemas Digitales. T. L. FLOYD. 7ª Ed.
(Prentice Hall, 2000). Cap. 2.
- Introduction to Computer Hardware and Data Communications.
P.-A. GOUPILLE. (Prentice Hall, 1993). Capítulos 2, 3 y 4.
2
1
SISTEMA DE NUMERACIÓN DECIMAL
• El sistema de numeración decimal con sus diez dígitos,
de 0 hasta 9, es un sistema en base diez.
• La p
posición de cada dígito
g
en un número decimal indica la
magnitud de la cantidad reservada, y se le puede asignar
un peso. Los pesos para los números enteros son
potencias positivas de diez, que aumentan de derecha a
izquierda, comenzando por 100 = 1.
... 105 104 103 102 101 100
• Para
ara fracc
fraccionarios,
onar os, los pesos son potenc
potencias
as negat
negativas
vas de
diez que aumentan de izquierda a derecha, comenzando
por 10-1 .
102 101 100 , 10-1 10-2 10-3 ...
Coma decimal
Escuela Politécnica Superior
3
SISTEMA DE NUMERACIÓN DECIMAL
• El valor de un número decimal es la suma de los dígitos
después de haber multiplicado cada dígito por su peso.
• Ejemplo:
j p
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 100.
47 = ( 4 x 101 ) + ( 7 x 100 )
= ( 4 x 10 ) + ( 7 x 1 ) = 40 + 7
Escuela Politécnica Superior
4
2
SISTEMA DE NUMERACIÓN DECIMAL
• Ejemplo:
Expresar el número decimal 568,23 como suma de los
valores de cada dígito.
g
Solución. El dígito 5 de la parte entera del número
tiene un peso 100, es decir 102; el dígito 6 tiene un peso
de 10, que corresponde a 101. El dígito 8 tiene un peso
de 1, que es 100; el dígito 2 de la parte fraccionaria
tiene un peso 0,1, es decir 10-1; y el dígito 3 tiene un
peso de 0,01 q
p
que es 10-2.
568,23 = (5 x 102) + (6 x 101) + (8 x 100) + (2 x 10-1) + (3 x 10-2)
= (5 x 100) + (6 x 10) + (8 x 1) + (2 x 0,1) + (3 x 0,01)
= 500
+ 60
+
8 + 0,2
+ 0,03
Escuela Politécnica Superior
5
SISTEMA DE NUMERACIÓN BINARIO
• El sistema de numeración binario solo tiene dos dígitos.
El sistema binario con sus dos dígitos es un sistema en
base dos. Los dígitos
g
binarios ((bits)) son 0 y 1.
• La posición de un 1 o de un 0 en un número binario indica
su peso, o valor dentro del número, así como la posición
de un dígito decimal determina el valor de ese dígito.
• Los pesos de un número binario están basados en las
potencias de dos.
Escuela Politécnica Superior
6
3
SISTEMA DE NUMERACIÓN BINARIO
• Contar en Binario
Por ejemplo, se requieren cuatro bits para contar desde
0 hasta 15. En g
general, con n bits se p
puede contar hasta
n
un número igual a 2 -1.
Máximo número decimal = 2n-1
Así, con 5 bits (n = 5) se puede contar desde 0 hasta 31:
25 – 1 = 32 – 1 = 31
Con 6 bits (n = 6) se puede contar desde 0 hasta 63:
26 - 1 = 64 – 1 = 63
Escuela Politécnica Superior
7
SISTEMA DE NUMERACIÓN BINARIO
Número
decimal
Número binario
0
0
0
0
0
1
0
0
0
1
2
0
0
1
0
3
0
0
1
1
4
0
1
0
0
5
0
1
0
1
6
0
1
1
0
7
0
1
1
1
8
1
0
0
0
1
9
1
0
0
10
1
0
1
0
11
1
0
1
1
12
1
1
0
0
13
1
1
0
1
14
1
1
1
0
15
1
1
1
1
Escuela Politécnica Superior
8
4
SISTEMA DE NUMERACIÓN BINARIO
• Estructura de Pesos de los Números Binarios
– Un número binario es un número con peso. El bit más a la
derecha es el bit menos significativo (LSB,
(LSB Least Significant
Bit) en un número entero binario y tiene un peso de 20 = 1.
– Los pesos de los respectivos bits crecen de derecha a izquierda
según las potencias de dos. El bit más a la izquierda es el bit
más significativo (MSB, Most Significant Bit), y su peso
depende del tamaño del número binario.
– Los números con parte fraccionaria también se pueden
representar en binario, colocando bits a la derecha de la coma
binaria.
Escuela Politécnica Superior
9
SISTEMA DE NUMERACIÓN BINARIO
• Estructura de Pesos de los Números Binarios
– En un número binario con parte fraccionaria, el bit más a la
izquierda es el MSB,
MSB y tiene un peso de 2-11 = 0,5.
05
– Los pesos fraccionarios de los respectivos bits decrecen de
izquierda a derecha según las potencias negativas de dos.
– La estructura de pesos de un número binario es:
2n-1 .... 23 22 21 20 , 2-1 2-2 ... 2-n
C
Coma
binaria
bi
i
donde n es el número de bits a partir de la coma binaria.
Escuela Politécnica Superior
10
5
SISTEMA DE NUMERACIÓN BINARIO
• Estructura de Pesos de los Números Binarios
Tabla de Pesos Binarios
Potencias negativas de dos
(número fraccionario)
Potencias positivas de dos
(número entero)
28
27 26 25 24 23 22 21 20
256 128
64
32 16
8
4
Escuela Politécnica Superior
2
1
2-1
2-2
2-3
2-4
2-5
2-6
1/2
1/4
1/8
1/16
1/32
1/64
0,5
0,25
0,125 0,0625 0,03125 0,015625
11
CONVERSIÓN BINARIO A DECIMAL
• El valor decimal de cualquier número binario se puede
determinar sumando los pesos de todos los bits que son
1,, y descartando los p
pesos de todos los bits q
que son 0.
• Ejemplo:
Convertir el número entero binario 1101101 a decimal.
Solución. Se determina el peso de cada bit que está a 1,
y luego se obtiene la suma de los pesos para obtener el
número decimal:
Peso: 26 25 24 23 22 21 20
Número binario: 1 1 0 1 1 0 1
1101101 = 26 + 25 + 23 + 22 + 20
= 64 + 32 + 8 + 4 + 1 = 109
Escuela Politécnica Superior
12
6
CONVERSIÓN BINARIO A DECIMAL
• Ejemplo:
Convertir el número binario fraccionario 0,1011 en
decimal
decimal.
Solución. En primer lugar se determina el peso de cada
bit que está a 1, y luego se suman los pesos para obtener
la fracción decimal:
Peso: 2-1 2-2 2-3 2-4
Número binario: 0 , 1 0 1 1
0,1011 = 2-1 + 2-3 + 2-4
= 0,5 + 0,125 + 0,0625 = 0,6875
Escuela Politécnica Superior
13
CONVERSIÓN DECIMAL A BINARIO
• Método de la Suma de Pesos
- Una forma de calcular el número binario equivalente a
un número decimal dado es determinar el conjunto de
pesos binarios, cuya
p
y suma es igual
g
al número decimal.
- Ejemplo:
Convertir los siguientes números decimales a formato
binario:
(a) 12 (b) 25 (c) 58 (d) 82
Solución.
(a) 12 = 8 + 4 = 23 + 22
(b) 25 = 16 + 8 + 1 = 24 + 23 + 20
(c) 58 = 32 + 16 + 8 + 2 = 25 + 24 + 23 + 21
(d) 82 = 64 + 16 + 2 = 26 + 24 + 21
Escuela Politécnica Superior
1100
11001
111010
1010010
14
7
CONVERSIÓN DECIMAL A BINARIO
• Método de la División Sucesiva por 2
- Un método sistemático para convertir a binario
enteros decimales es el proceso de la división
sucesiva por 2 .
- Por ejemplo, para convertir a binario el número
decimal 12, comenzamos dividiendo 12 entre 2. Luego
cada cociente resultante se divide por 2 hasta que
se obtiene un cociente cuya parte entera es 0.
- Los restos generados en cada división forman el
número binario.
binario El primer resto es el bit menos
significativo (LSB) y el último resto es el bit más
significativo (MSB) del número binario.
Escuela Politécnica Superior
15
CONVERSIÓN DECIMAL A BINARIO
• Método de la División Sucesiva por 2
- Ejemplo:
Resto
0
12 = 6
2
6
2
3
2
Parar cuando la parte
entera del cociente sea 0
1
2
Escuela Politécnica Superior
=
3
0
=
1
1
=
0
1
1 1 0 0
MSB
LSB
16
8
CONVERSIÓN DE FRACCIONES DECIMALES A BINARIO
• Método de la Suma de Pesos
- El método de la suma de pesos se puede aplicar a
números decimales fraccionarios. Por ejemplo:
0 625 = 0,5
0,625
0 5 + 0,125
0 125 = 2-1 + 2-3 = 0,101
0 101
Lo que indica que en la posición 2-1 hay un 1, en la
posición 2-2 un 0 y en la posición 2-3 un 1.
• Método de la Multiplicación Sucesiva por 2
- Los números decimales enteros se pueden convertir a
por 2.
números binarios mediante la división sucesiva p
- Los
números
decimales
fraccionarios
pueden
convertirse en números binarios mediante la
multiplicación sucesiva por 2.
Escuela Politécnica Superior
17
CONVERSIÓN DE FRACCIONES DECIMALES A BINARIO
• Método de la Multiplicación Sucesiva por 2
- Por ejemplo, para convertir a binario el número
decimal fraccionario 0,3125, empezamos multiplicando
por 2,
2 y después
d s és se
s multiplica
lti li
cada
d parte
t fraccional
f
i
l
resultante del producto por 2, hasta que el producto
fraccionario sea cero o hasta que se alcance el número
deseado de posiciones decimales.
- Los dígitos acarreados, o acarreos, generados por las
multiplicaciones dan lugar al número binario.
- El primer acarreo que se obtiene es el MSB, y el
último es el LSB.
Escuela Politécnica Superior
18
9
CONVERSIÓN DE FRACCIONES DECIMALES A BINARIO
• Método de la Multiplicación Sucesiva por 2
- Ejemplo:
MSB
LSB
Acarreo
,0101
0 3125 x 2 = 0,625
0,3125
0 625
0
0,625 x 2 = 1,25
1
0,25 x 2 = 0,50
0
Continuar hasta obtener
posiciones
el número de p
decimales deseadas, o
parar cuando la parte
fraccional sea toda cero
0,50 x 2 = 1,00
Escuela Politécnica Superior
1
19
SISTEMA DE NUMERACIÓN HEXADECIMAL
- El sistema de numeración hexadecimal es un sistema en
base dieciséis, es decir, está formado por 16 dígitos y
caracteres alfabéticos: 0
0-9
9yA
A-F
F.
- La mayoría de los sistemas digitales procesan grupos de
datos binarios que son múltiplos de cuatro bits, lo que
hace al número hexadecimal muy adecuado, ya que cada
dígito hexadecimal se representa mediante un número
binario de 4 bits.
bits
Escuela Politécnica Superior
20
10
SISTEMA DE NUMERACIÓN HEXADECIMAL
Decimal
Binario
Hexadecimal
0
0000
0
1
0001
1
2
0010
2
3
0011
3
4
0100
4
5
0101
5
6
0110
6
7
0111
7
8
1000
8
9
1001
9
10
1010
A
11
1011
B
12
1100
C
13
1101
D
14
1110
E
15
1111
F
Escuela Politécnica Superior
21
CONVERSIÓN BINARIOBINARIO-HEXADECIMAL
- El procedimiento de conversión de un número binario a
hexadecimal consiste en los siguientes pasos: (a) se
parte el número binario en grupos de 4 bits,
comenzando por el bit más a la derecha; y (b) se
reemplaza cada grupo de 4 bits por su símbolo
hexadecimal equivalente.
Escuela Politécnica Superior
22
11
CONVERSIÓN BINARIOBINARIO-HEXADECIMAL
• Ejemplo: Convertir a hexadecimal los siguientes números
binarios:
(a) 1100101001010111
(b) 111111000101101001
Solución.
(a)
(b)
1100 1010 0101 0111
C
A
5
7 = CA5716
Escuela Politécnica Superior
0011 1111 0001 0110 1001
3
F
1
6
9 = 3F16916
23
CONVERSIÓN HEXADECIMALHEXADECIMAL-BINARIO
- Para convertir un número hexadecimal en un número
binario se realiza el proceso inverso,
inverso reemplazando
cada símbolo hexadecimal, por el grupo de cuatro bits
adecuados.
Escuela Politécnica Superior
24
12
CONVERSIÓN HEXADECIMALHEXADECIMAL-BINARIO
• Ejemplo:
Determinar
los
números
binarios
que
correspondan a los siguientes números hexadecimales:
(a) 10A416
(b) CF8E16
(c) 974216
Solución.
(a) 1
0
A
4
(b) C
1 000010100100
Escuela Politécnica Superior
F
8
E
1100 1111 1000 1110
(c) 9
7
4
2
1001 0111 0100 0010
25
CONVERSIÓN HEXADECIMALHEXADECIMAL-DECIMAL
- Método 1: para encontrar el equivalente decimal de un
número
ú
h
hexadecimal,
d i l primero,
i
convertir
ti ell número
ú
hexadecimal a binario, y después, el binario a decimal.
Escuela Politécnica Superior
26
13
CONVERSIÓN HEXADECIMALHEXADECIMAL-DECIMAL
• Ejemplo: Convertir a decimal los siguientes números
hexadecimales:
((a)) 1C16
((b)) A8516
Solución. Primero, hay que convertir a binario el
número hexadecimal, y después a decimal:
(a)
1
C
1100 = 24 + 23 + 22 = 16 + 8 + 4 = 2810
0001
(b) A
8
5
1010 1000 0101 = 211 + 29 + 27 + 22 + 20 = 2048 + 512 + 128 + 4 + 1 = 269310
Escuela Politécnica Superior
27
CONVERSIÓN HEXADECIMALHEXADECIMAL-DECIMAL
- Método 2: para convertir un número hexadecimal a su
equivalente decimal, multiplicar el valor decimal de
cada dígito hexadecimal por su peso,
peso y luego realizar la
suma de estos productos.
- Los pesos de un número hexadecimal crecen según las
potencias de 16 (de derecha a izquierda).
- Para un número hexadecimal de 4 dígitos,
dígitos los pesos
son:
163
4096
Escuela Politécnica Superior
162
256
161
16
160
1
28
14
CONVERSIÓN HEXADECIMALHEXADECIMAL-DECIMAL
• Ejemplo: Convertir a decimal los siguientes números
hexadecimales:
(a) E516
(b) B2F816
Solución. Las letras de la A hasta la F representan los
números decimales de 10 hasta 15, respectivamente.
(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 163) + (2 x 162) + (15 x 161) + (8 x 160)
= (11 x 4096) + (2 x 256) + (15 x 16) + (8 x 1)
=
45056
Escuela Politécnica Superior
+
512
+
240
+
8 = 4581610
29
CONVERSIÓN DECIMALDECIMAL-HEXADECIMAL
- La división sucesiva por 16 de un número decimal
generará el número hexadecimal equivalente formado
por restos de las divisiones.
divisiones
- El primer resto que se genera es el dígito menos
significativo (LSD).
- Cada división sucesiva por 16 dará un resto que será
dígito del número hexadecimal equivalente.
- E
Este
t procedimiento
di i t es similar
i il
a la
l división
di i ió sucesiva
i
por 2 para la conversión decimal-binario.
Escuela Politécnica Superior
30
15
CONVERSIÓN DECIMALDECIMAL-HEXADECIMAL
• Ejemplo. Convertir a hexadecimal el número decimal 650
por el método de la división sucesiva por 16.
Resto hexadecimal
650
16
40
16
2
16
,
= 40,625
0,625 x 16 =10 = A
= 2,5
0,5 x 16 = 8 =
= 0,125
8
0,125 x 16 = 2 = 2
Parar cuando la parte
entera del cociente sea 0
Escuela Politécnica Superior
2 8 A
Dígito más
significativo
Número
hexadecimal
31
Dígito menos
significativo
SISTEMA DE NUMERACIÓN OCTAL
- El sistema de numeración octal está formado por ocho
dígitos, que son: 0, 1, 2, 3, 4, 5, 6, 7.
- Puesto que el sistema de numeración octal es un sistema
en base ocho, cada posición sucesiva de dígito es una
potencia superior de ocho, empezando por el dígito
situado más a la derecha con 80.
Escuela Politécnica Superior
32
16
CONVERSIÓN OCTAL
OCTAL-DECIMAL
- La evaluación de un número octal en términos de su
equivalente decimal se consigue multiplicando cada
dígito
g
por su p
p
peso y sumando los p
productos. Por
ejemplo, para 23748 se tiene:
Peso : 83 82 81 80
Número Octal: 2
3
7 4
23748 = (2 x 83) + (3 x 82) + (7 x 81) + (4 x 80)
= (2 x 512) + (3 x 64) + (7 x 8) + (4 x 1)
=
1024
+
192
+
56
+ 4 = 127610
Escuela Politécnica Superior
33
CONVERSIÓN DECIMALDECIMAL-OCTAL
- Un método para convertir un número decimal en un
número octal es el método de la división sucesiva por 8.
- 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ígito menos
significativo.
- Por ejemplo, convertir a octal el número decimal 359.
Escuela Politécnica Superior
34
17
CONVERSIÓN DECIMALDECIMAL-OCTAL
359
8
44
8
5
8
=
44,875
= 5,5
=
0,625
0,875 x 8 =
0,5 x 8 =
0,625 x 8 =
7
4
5
Parar cuando la parte
entera del cociente sea 0
5 4 7
Dígito más
significativo
Número octal
Dígito menos
significativo
Escuela Politécnica Superior
35
CONVERSIÓN OCTAL
OCTAL-BINARIO
- Puesto que cada dígito octal se puede representar
mediante un número binario de 3 dígitos, para
convertir un número octal en un número binario,
simplemente se reemplaza cada dígito por el
correspondiente grupo de tres bits.
- Cada dígito octal se representa mediante tres bits,
como se muestra en la siguiente tabla:
Dígito octal
Binario
0
1
2
3 4
5
6
7
000 001 010 011 100 101 110 111
Escuela Politécnica Superior
36
18
CONVERSIÓN OCTAL
OCTAL-BINARIO
• Ejemplo: Convertir a binario los siguientes números
octales:
octales
(a) 138
(b) 258
(c) 1408
(d) 75268
Solución.
(a)
1
3
001 011
(b)
2
5
010 101
(c) 1
4
0
001 100 000
(d) 7
5
2
6
111 101 010 110
Escuela Politécnica Superior
37
CONVERSIÓN BINARIOBINARIO-OCTAL
- La conversión de un número binario a un número octal
es el inverso de la conversión de octal a binario.
- El procedimiento es el siguiente: se comienza por el
grupo de tres bits más a la derecha y, moviéndose de
derecha a izquierda, se convierte cada grupo de 3 bits
en el dígito octal equivalente.
- Si para el grupo más a la izquierda no hay disponibles
tres bits, se añaden uno o dos ceros para completar el
grupo. Estos
E
ceros no afectan
f
all valor
l
d l número
del
ú
binario.
Escuela Politécnica Superior
38
19
CONVERSIÓN BINARIOBINARIO-OCTAL
• Ejemplo: Convertir a octal los siguientes números binarios:
(a) 110101
(b) 101111001
(c) 100110011010
(d) 11010000100
Solución.
(a) 110 101
6
(b)
5
5 = 658
(c) 100 110 011 010
4
101 111
6
3
(d)
7
001
1 = 5718
011 010 000 100
2 = 46328
3
2
0
Escuela Politécnica Superior
4 = 32048
39
RESUMEN. REPRESENTACIONES DE
NATURALES NO BINARIAS
1. Propiedad de sistemas posicionales
Si se tienen dos bases b1 y b2 tales que b1=(b2)k, los
dígitos de la representación en la base b1 se pueden
obtener agrupando los dígitos de la base b2 en
grupos de longitud k y representando en base b1.
2. Objetivos de las bases:
• Representaciones más legibles para el usuario.
usuario
• Representaciones de fácil conversión a binario.
Escuela Politécnica Superior
40
20
RESUMEN. REPRESENTACIONES DE
NATURALES NO BINARIAS
• Representación Octal
Sistema Posicional:
• Base 8
• Conjunto de dígitos { 0, 1, 2, 3, 4, 5, 6, 7 } .
Escuela Politécnica Superior
41
RESUMEN. REPRESENTACIONES DE
NATURALES NO BINARIAS
• Conversiones
1. Conversión
ó binario
octal
• Las bases involucradas cumplen la condición de la
propiedad:
8 = 23
• Las conversiones se pueden hacer agrupando los
dígitos binarios de 3 en 3
3:
- Comenzando por el bit menos significativo.
- Completando a la izquierda, si fuera necesario.
Escuela Politécnica Superior
42
21
RESUMEN. REPRESENTACIONES DE
NATURALES NO BINARIAS
• Conversiones
1. Conversión binario
octal
• Ejemplos:
- 10110111002 = (se agrupan de 3 en 3)
001 011 011 1002 = (se pasa a octal)
13348
- 1078 = (se pasa a binario, 3 bits, dígito a dígito)
001 000 1112 = 10001112
2. Conversión decimal
octal
• Mismos algoritmos que decimal
Escuela Politécnica Superior
binario
43
RESUMEN. REPRESENTACIONES DE
NATURALES NO BINARIAS
• Representación Hexadecimal
• Base
B
16
Sistema Posicional:
• Conjunto de dígitos {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}
• Valores:
- A16 = 1010
- B16 = 1110
- C16 = 1210
- D16 = 1310
- E16 = 1410
- F16 = 1510 .
Escuela Politécnica Superior
44
22
RESUMEN. REPRESENTACIONES DE
NATURALES NO BINARIAS
• Conversiones
1. Conversión binario
hexadecimal
• Las bases involucradas cumplen la condición de la
propiedad:
16 = 24
• Las conversiones se pueden hacer agrupando los
dígitos binarios de 4 en 4:
- Comenzando por el bit menos significativo.
significativo
- Completando a la izquierda, si fuera necesario.
Escuela Politécnica Superior
45
RESUMEN. REPRESENTACIONES DE
NATURALES NO BINARIAS
• Conversiones
1. Conversión binario
hexadecimal
• Ejemplos:
- 10110111002 = (se agrupa de 4 en 4)
0010 1101 11002 = (se pasa a hexadecimal)
2DC16
- 10C16 = (se pasa a binario, 4 bits, dígito a dígito)
0001 0000 11002 = 1000011002
2. Conversión decimal
hexadecimal
• Mismos algoritmos que decimal
Escuela Politécnica Superior
binario
46
23
RESUMEN. REPRESENTACIONES DE
NATURALES NO BINARIAS
• Conversiones
3. Conversión hexadecimal
octal
• Se suele utilizar el paso intermedio a binario.
• Ejemplo:
- 70A1F16 = (se pasa a binario)
0111 0000 1010 0001 11112 = (grupos de 3)
001 110 000 101 000 011 1112 = (paso a octal)
16050378
Escuela Politécnica Superior
47
OPERACIONES EN BINARIO PURO
1. Suma Binaria
- Las cuatro reglas básicas para sumar dígitos binarios son:
Tabla de la suma dígito a dígito
0 + 0 = 0
Suma 0 con acarreo 0
0 + 1 = 1
Suma 1 con acarreo 0
1 + 0 = 1
Suma 1 con acarreo 0
1 + 1 = 10
Suma 0 con acarreo 1
(El resultado es 210 = 102)
(E
Escuela Politécnica Superior
Acarreo Acarreo
1
1
0
1
1
+ 0
0
1
1
0
0
48
24
OPERACIONES EN BINARIO PURO
1. Suma Binaria
- Cuando existe un acarreo igual a 1, se produce una
situación en la que se deben sumar tres bits (un bit de
cada uno de los números y un bit de acarreo).
acarreo)
Bits de acarreo
1 + 0 + 0 = 01
Suma 1 con acarreo 0
1 + 1 + 0 = 10
Suma 0 con acarreo 1
1 + 0 + 1 = 10
Suma 0 con acarreo 1
1 + 1 + 1 = 11
Suma 1 con acarreo 1
Escuela Politécnica Superior
49
OPERACIONES EN BINARIO PURO
1. Suma Binaria
- Ejemplo:
1010
1010
1
1010
+ 1011
+ 1011
+ 1011
1
01
1
1
1010
1010
+ 1011
+ 1011
+ 1011
101
0101
10101
1
1010
- Ejemplos: • 1 + 1 + 1 + 1 = 100
2
2
2
2
2
• 112 + 12 + 1012 + 102 + 1102 = 100012
Escuela Politécnica Superior
50
25
OPERACIONES EN BINARIO PURO
1. Suma Binaria
- Ejemplo: Sumar los siguientes números binarios:
(a) 11 + 11 (b) 100 + 10 (c) 111 + 11 (d) 110 + 100
Solución.
La suma decimal equivalente se muestra también como
referencia.
(a) 11
3
+ 11 + 3
110 6
(b) 100
+ 10
110
4
+2
6
(c) 111
7
+ 11 + 3
1010 10
(d) 110 6
+ 100 + 4
1010 10
Escuela Politécnica Superior
51
OPERACIONES EN BINARIO PURO
2. Resta Binaria
- Las cuatro reglas básicas para restar números binarios son:
Tabla de la resta dígito a dígito
0 - 0 = 0
0 - 1 = 1 (con acarreo negativo de 1,
el resultado es 210 – 110 = 102 – 12)
1 - 0 = 1
1 - 1 = 0
Escuela Politécnica Superior
52
26
OPERACIONES EN BINARIO PURO
2. Resta Binaria
• Ejemplo: Realizar las siguientes sustracciones binarias:
( ) 11 - 01 (b) 11 - 10
(a)
Solución.
(a) 11 3
- 01 - 1
10
2
(b) 11
- 10
01
3
-2
1
En este ejemplo no se han generado acarreos negativos. El
número binario 01 es el mismo que 1.
Escuela Politécnica Superior
53
OPERACIONES EN BINARIO PURO
2. Resta Binaria
• Ejemplo: Restar 011 de 101.
Solución.
101
5
- 011
-3
010 2
En este ejemplo es necesario un acarreo negativo.
Comenzando por la columna de la derecha, se tiene:
Columna izquierda:
cuando se acarrea un
1, queda 0, luego 0-0
0110
1
- 011
010
Escuela Politécnica Superior
Columna central: Acarreo negativo de 1
de la columna siguiente que da lugar a 10
en esta columna, luego 10-1=1
Columna derecha: 1 - 1 = 0
54
27
OPERACIONES EN BINARIO PURO
2. Resta Binaria
- Ejemplo:
1011
-
1011
101
-
1011
101
0
-
10
101
110
1011
1011
- 101
- 1101
1
110
0110
- Ejemplos:
• 10000 – 1111 = 1
• 11 - 111
Escuela Politécnica Superior
55
OPERACIONES EN BINARIO PURO
3. Multiplicación Binaria
- Las cuatro reglas básicas de la multiplicación de bits
son las siguientes:
0 x 0 = 0
0 x 1 = 0
1 x 0 = 0
1 x 1 = 1
- Algoritmo: la multiplicación con números binarios se
realiza de la misma forma que con números
decimales.
Escuela Politécnica Superior
56
28
OPERACIONES EN BINARIO PURO
3. Multiplicación Binaria
3.1. Multiplicación directa de naturales en binario
• Mismo algoritmo que en decimal.
decimal
• Ventaja: facilidad de cálculo.
x * 12 = x ∀ x
x * 02 = 0 ∀ x
Escuela Politécnica Superior
57
OPERACIONES EN BINARIO PURO
3. Multiplicación Binaria
3.1. Multiplicación directa de naturales en binario
- Ejemplo:
1000
x 1010
0000
Escuela Politécnica Superior
1000
x 1010
1000
x 1010
0000
1000
0000
1000
0000
1000
x 1010
0000
1000
0000
1000
1000
x 1010
0000
1000
0000
1000
1010000
58
29
OPERACIONES EN BINARIO PURO
3. Multiplicación Binaria
3.1. Multiplicación directa de naturales en binario
• Ejemplo:
Ej mpl : Realizar
R liz las
l s siguientes
si ui nt s multiplicaciones
multiplic ci n s binarias:
bin i s:
(a) 11 x 11
(b) 101 x 111
Solución.
(a)
Productos
Parciales
11
3
x 11 x 3
11
9
+ 11
1001
(b)
Productos
Parciales
Escuela Politécnica Superior
111
x 101
111
000
+ 111
100011
7
x 5
35
59
OPERACIONES EN BINARIO PURO
3. Multiplicación Binaria
3.1. Multiplicación directa de naturales en binario
- Ejemplo:
Ej
l
• 10112 * 1112 = 10011012
3.2. Reducción de producto a sumas reiteradas
x * y = ∑i =1 x
y
Escuela Politécnica Superior
∀x, y
60
30
OPERACIONES EN BINARIO PURO
4. División Binaria
4.1. División directa de naturales en binario
- Algoritmo:
Al
it
mismo
i
algoritmo
l
it
que en d
decimal.
i l
- Ejemplo:
1100
100
100
1
110 0 100
100
11
0100
1100 100
100
1
0100
1100 100
100
11
0100
100
Escuela Politécnica Superior
000
61
OPERACIONES EN BINARIO PURO
4. División Binaria
4.1. División directa de naturales en binario
• Ejemplo:
Ej
l Realizar
R li
l siguientes
las
i i t divisiones
di i i
bi
binarias:
i
(a) 110 ÷ 11
Solución.
(a)
10
2
11)110 3)6
11
6
000
0
Escuela Politécnica Superior
(b) 110 ÷ 10
(b) 11
10)110
10
10
10
00
3
2)6
6
0
62
31
OPERACIONES EN BINARIO PURO
4. División Binaria
4.1. División directa de naturales en binario
- Ejemplo:
Ej
l
• 11011002 ÷ 1002 = 110112 con resto 0
4.2. Reducción de división a restas reiteradas
Escuela Politécnica Superior
63
CARACTERÍSTICAS DE ENTEROS EN
BINARIO PURO
11... 111
11... 110
11
11...
101
•Anomalías en la resta:
resultados erróneos
• 310 - 710
11
111
00...
00...
00...
00...
011
010
001
000
2n-2
0 123
Escuela Politécnica Superior
100
2n-3 2n-1
64
32
REDUCCIÓN DE OPERACIONES,
RESTAS A SUMAS
• No es necesario realizar restas.
• Uso del opuesto:
p
∀x ∃opuesto(x) = -x x - x = 0
y
x - y = x + opuesto(y) ∀ x, y
• El tamaño utilizado para representar números:
- Observación sobre el tamaño de almacenamiento.
- Acarreo y desbordamiento.
Escuela Politécnica Superior
65
COMPLEMENTO A 1 Y COMPLEMENTO A 2
DE LOS NÚMEROS BINARIOS
• El complemento a 1 y el complemento a 2 de un
número binario son importantes porque permiten la
representación de números negativos.
• La aritmética en complemento a 2 se usa comúnmente
en las computadoras para manipular los números
negativos.
• 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 1s por 0s y todos los 0s por 1s:
1 0
1
1
0
0
1
0
Número binario
0 1
0
0
1
1
0
1
Complemento a 1
Escuela Politécnica Superior
66
33
COMPLEMENTO A 1 Y COMPLEMENTO A 2
DE LOS NÚMEROS BINARIOS
• Obtención del Complemento a 2 de un Número Binario
- El complemento a 2 de un número binario se obtiene
s
sumando
d 1 all LSB del
d l complemento
l
t a 1.
1
Complemento a 2 = (Complemento a 1) + 1
- Ejemplo: Hallar el complemento a 2 de 10110010
Solución.
10110010
01001101
+
1
01001110
Escuela Politécnica Superior
Número Binario
Complemento a 1
Se suma 1
Complemento a 2
67
COMPLEMENTO A 1 Y COMPLEMENTO A 2
DE LOS NÚMEROS BINARIOS
- Método alternativo para obtener el complemento a 2 de
un número binario:
11. Se
S empieza
i
por la
l derecha
d
h con ell LSB y se escriben
ib los
l
bits como están hasta encontrar el primer 1, incluido
éste.
2. Se calcula el complemento a 1 de los bits restantes.
Ejemplo: Calcular el complemento a 2 de 10111000,
utilizando el método alternativo.
Solución.
l ó
Complemento a 1
de los bits originales
Escuela Politécnica Superior
10111000 Número binario
01001000 Complemento a 2
Estos bits no varían
68
34
NÚMEROS CON SIGNO. REPRESENTACIÓN
DE ENTEROS EN COMA FIJA
- Los sistemas digitales, tales como la computadora,
deben ser capaces de manejar números positivos y
negativos.
- Un número binario con signo queda determinado por su
magnitud y su signo.
- El signo indica si un número es positivo o negativo, y la
magnitud es el valor del número.
- Existen tres formatos binarios para representar los
números enteros con signo:
signo-magnitud, complemento a 1 y complemento a 2.
- Los números no enteros y muy grandes o muy pequeños
pueden expresarse en formato de coma flotante.
Escuela Politécnica Superior
69
REPRESENTACIÓN DE ENTEROS EN COMA
FIJA SIGNO
SIGNO-MAGNITUD
• El bit de signo
- Se reserva un dígito para representar el signo del
número En general,
número.
general el bit más a la izquierda en un
número binario con signo es el bit de signo, que indica si
el número es positivo o negativo. El significado suele ser:
0, número positivo y 1, número negativo.
Se utiliza un 0 para el signo positivo y un 1 para el signo negativo.
• Sistema Signo-Magnitud
- Cuando un número binario con signo se representa en
formato signo-magnitud, el bit más a la izquierda es el
bit de signo y los bits restantes son los bits de
magnitud.
Escuela Politécnica Superior
70
35
REPRESENTACIÓN DE ENTEROS EN COMA
FIJA SIGNO
SIGNO-MAGNITUD
• Sistema Signo-Magnitud
- Los bits de magnitud son el número binario real (no complementado) tanto para los números positivos como para
los negativos. Por ejemplo: el número decimal 25 es:
00011001
Bit de signo
Bits de magnitud
El número decimal -25 se expresa así:
10011001
En el sistema signo-magnitud, un número negativo tiene los
mismos bits de magnitud que el correspondiente número
positivo, pero el bit de signo es un 1 en lugar de un cero.
Escuela Politécnica Superior
71
REPRESENTACIÓN DE ENTEROS EN COMA FIJA
• Sistema del Complemento a 1
- Los números positivos en el sistema del complemento a 1 se
representan de la misma forma que en el formato signo-magnitud.
- Los números negativos son el complemento a 1 del correspondiente
número positivo.
11100110
En el sistema del complemento a 1, un número negativo es el
complemento a 1 del correspondiente número positivo.
• Sistema del Complemento a 2
- Los números positivos en el sistema del complemento a 2 se
representan de la misma forma que en los sistemas de complemento
a 1 y de signo-magnitud.
- Los números negativos son el complemento a 2 del correspondiente
número positivo.
11100111
En el sistema del complemento a 2, un número negativo es el
complemento a 2 del correspondiente número positivo.
Escuela Politécnica Superior
72
36
CONVERSIONES DECIMAL /
SIGNOSIGNO
-MAGNITUD
1. Conversiones decimal
signo magnitud:
• Como binario pero el signo por separado.
• Ejemplos:
• Si n = 7 y se desea representar 2710 ,
su representación es 0011011
• Si n = 7 y se desea representar
p
–2710 ,
su representación es 1011011
Escuela Politécnica Superior
73
CONVERSIONES DECIMAL /
SIGNOSIGNO
-MAGNITUD
2. Conversiones signo-magnitud
decimal:
- Ejemplos:
j p
• Si n = 9 y el valor de 001101101, es 10910
• Si n = 9 y el valor de 100110101, es -5310
Escuela Politécnica Superior
74
37
VALOR DECIMAL DE LOS NÚMEROS CON SIGNO
• Signo-magnitud
- Los valores decimales de los números positivos y
negativos se determinan sumando los pesos de todas
las posiciones de los bits de magnitud, cuando son 1s,
e ignorando aquellas posiciones en las que haya cero.
cero
El signo se determina por medio del examen del bit
de signo.
- Ejemplo: Determinar el valor decimal del número binario
con signo expresado como signo magnitud: 10010101.
Solución.
Los siete bits de magnitud
g
y sus pesos
p
potencias
p
de dos son:
26 25 24 23 22 21 20
0 0 1 0 1 0 1
Sumando los pesos de las posiciones donde hay 1s, se tiene:
16 + 4 + 1 = 21
El bit de signo es 1, por tanto, el número es -21.
Escuela Politécnica Superior
75
OPERACIONES DE ENTEROS EN
COMA FIJA SIGNOSIGNO-MAGNITUD
1. Calculo del opuesto
- Inversión del bit más a la izquierda
2. Sumas y restas
- Necesidad de analizar los signos. Ejemplo, para la suma:
Signo X1
Signo X2
Operación
0 (+)
0 (+)
X 1 + X2
3+7=3+7=10
0 ((+))
1 ((-))
X1 - X2
3 ( 7) 3 7 4
3+(-7)=3-7=-4
1 (-)
0 (+)
X 2 - X1
(-3)+7=7-3=4
1 (-)
1 (-)
Escuela Politécnica Superior
- ( X1 + X 2 )
Ejemplo
-3-7=-(3+7)=-10
76
38
OPERACIONES DE ENTEROS EN
COMA FIJA SIGNOSIGNO-MAGNITUD
• Ejemplos:
• Sumar -9
910 y -3
310 = en signo magnitud
d con n=6
6
-910 se representa como 101001
-310 se representa como 100011
Para sumar se sumará 3 de 9 con resultado negativo
101001
100011
Los signos
L
i
determinan
la operación
suma
01001
00011
01100
Se
S
añade el
signo
101100
Escuela Politécnica Superior
77
CARACTERÍSTICAS DE SIGNOSIGNOMAGNITUD
• Desbordamientos:
Si n = 5 , x = 1110 , y = 610
x es 01011, y es 00110
Su suma es 10001 (aparentemente -1)
- Rango de representación: [-2n-1-1, 2n-1-1].
• Dos representaciones para el 0:
• 0...(n-2 ceros)...0
• 10...(n-3 ceros)...0
• Operaciones son complicadas.
Escuela Politécnica Superior
78
39
REPRESENTACIÓN COMPLEMENTO RESTRINGIDO
A LA BASE
BASE-1 (COMPLEMENTO A 1 CON BASE 2)
• El complemento a 1 de un valor es:
• El complemento lógico dígito a dígito de su
representación en binario puro,
puro si es negativo
negativo.
• Su representación en binario puro, si es positivo.
• Distinción entre positivos y negativos:
• Comienzo 0 significa positivo.
• Comienzo 1 significa negativo.
•D
Desbordamientos:
m
• Ejemplo: valores mayores de 2n-1-1 (una cadena de
n-1 dígitos igual a 1) son positivos pero se
interpretan como negativos.
Escuela Politécnica Superior
79
REPRESENTACIÓN COMPLEMENTO RESTRINGIDO
A LA BASE
BASE-1 (COMPLEMENTO A 1 CON BASE 2)
1. Conversiones: Complemento a 1
• Algoritmo:
decimal
• Si ell 1er bit es 0,
0 entonces
t
se aplica
li la
l
conversión de binario a decimal.
• Si el 1er bit es 1, entonces se aplica el
complemento a 1 y se aplica la conversión de
binario a decimal y el valor es su opuesto.
• Ejemplos:
• El número en complemento a 1 10011 representa el valor
-12, ya que es el opuesto del número binario 011002 = 1210
• El número en complemento a 1 000100 representa el valor
410
Escuela Politécnica Superior
80
40
VALOR DECIMAL DE LOS NÚMEROS CON SIGNO
• Complemento a 1
- Los valores decimales de los números positivos en el
sistema de complemento a 1, se determinan sumando
todas las posiciones de bit donde haya 1s, y se ignoran
aquellas posiciones donde haya ceros.
- Los valores decimales de los números negativos se
determinan asignando el valor negativo al peso del bit
de signo, y sumando todos los pesos donde haya 1s, y
añadiendo
ñ di d luego
l
1 all resultado.
l d
Escuela Politécnica Superior
81
VALOR DECIMAL DE LOS NÚMEROS CON SIGNO
• Complemento a 1
- Ejemplo: Determinar el valor decimal de los números
binarios con signo expresados en complemento a 1:
(a) 00010111
(b) 11101000
Solución. Para (a) 00010111:
(a) Los bits y sus pesos según las potencias de dos para
el número positivo son:
-27 26 25 24 23 22 21 20
0 0 0 1 0 1 1 1
sumando los pesos donde hay 1s:
16 + 4 + 2 + 1 = +23
Escuela Politécnica Superior
82
41
VALOR DECIMAL DE LOS NÚMEROS CON SIGNO
• Complemento a 1
- Ejemplo: (Continuación)
Solución Para (b) 11101000:
Solución.
(b) Los bits y sus pesos según las potencias de dos para
el número negativo son los siguientes ( el bit de signo
negativo tiene un peso de -27, es decir, -128 ):
-27 26 25 24 23 22 21 20
1 1 1 0 1 0 0 0
sumando los pesos donde hay 1s
-128 + 64 + 32 + 8 = -24
sumando 1 al resultado, el número final es:
-24 + 1 = -23
Escuela Politécnica Superior
83
OPERACIONES EN COMPLEMENTO A 1
1. Cálculo del opuesto en complemento a 1
• Algoritmo:
• El opuesto de un número en complemento a 1
es su complemento a 1
• Ejemplos:
• -210 con 5 dígitos es 11101, su opuesto es 210
• 1210 con 5 dígitos es 01100, su opuesto es -1210
Escuela Politécnica Superior
84
42
OPERACIONES EN COMPLEMENTO A 1
2. Suma en complemento a 1
• Algoritmo:
Sumar en bi
S
binario
i puro (excepto cuando ambos son positivos o negativos):
• Si no hay acarreo final, el resultado es negativo.
• Si hay acarreo final, el resultado es positivo pero
hay que sumar el acarreo al resultado.
• Ejemplos:
• Si n=8
n=8, x=63
x=63, y=
y=-28
28
• Si n=9, x=-75, y=40
Escuela Politécnica Superior
85
OPERACIONES EN COMPLEMENTO A 1
3. Resta o sustracción en complemento a 1
- La sustracción es un caso especial de la suma.
- Por ejemplo, restar +6 (el sustraendo) de +9 (el minuendo)
es equivalente a sumar -6 a +9.
- Básicamente la operación de la sustracción cambia el signo
del sustraendo y le suma al minuendo.
- El resultado de una sustracción se denomina diferencia.
• El
E ssigno
gno de un núm
número
ro binario
nar o pos
positivo
t o o n
negativo
gat o sse
cambia calculando su complemento a 1.
• Para restar dos números con signo se calcula el
complemento a 1 del sustraendo y se suman. Cualquier
bit de acarreo final se suma al LSB (de más a la
derecha).
Escuela Politécnica Superior
86
43
OPERACIONES EN COMPLEMENTO A 1
3. Resta o sustracción en complemento a 1
- Ejemplo:
Forma normal
Forma en complemento a 1
001111 1 1
0011 1 111
6310
- 00011100
+ 1 1100011
- 2810
Acarreo final
100100010
1
00100011
3510
- Si no hubiera
h bi
un bit
bi de
d acarreo final,
fi l entonces ell
resultado es un número negativo representado en la
forma de complemento a 1. La magnitud del resultado
se puede determinar obteniendo su complemento a 1.
Escuela Politécnica Superior
87
OPERACIONES EN COMPLEMENTO A 1
3. Resta o sustracción en complemento a 1
- Ejemplo: Restar 6310 de 2810.
Forma normal
Forma en complemento a 1
00011100
00011100
2810
- 001111 1 1
+ 1 1000000
- 6310
110 1 1 100
- 3510
No hay acarreo final
- No se tiene un bit de acarreo final, por tanto el
resultado es un número negativo
g
en complemento
p
a
1. Se debe determinar su complemento a 1 para
obtener su magnitud; en este caso es: 00100011 o
3510. Como su signo es negativo, el resultado real
es: -3510.
Escuela Politécnica Superior
88
44
CARACTERÍSTICAS DEL COMPLEMENTO A 1
• El complemento a 1 es el complemento lógico.
• Desbordamientos posibles en la suma:
• Ejemplo:
Ej
l n=6,
6 x=27,
27 y=22
22
• Dos representaciones del 0: 0...(n-2)...0 cero
“positivo” y 1...(n-2)...1 cero “negativo”.
• Misma magnitud de máximos enteros (positivo
y es 2n-1-1 y negativo
g
menor es
mayor
-(2n-1-1); por ejemplo 31 y -31, si n=6).
• Rango de representación: [0, 2n-1-1] para los
positivos y [-(2n-1-1), -0] para los negativos.
Escuela Politécnica Superior
89
REPRESENTACIÓN COMPLEMENTO A LA
BASE (COMPLEMENTO A 2 CON BASE 2)
• El complemento a 2 de un valor es:
• El resultado de la suma binaria de 1 y el complemento a 1
del número
número, si es negativo.
negativo
• Su representación en binario puro, si es positivo.
• Ejemplos:
• -210 con 5 dígitos es 11110
210 = 000102 , -210 en complemento a 1 es 11101
12 + 111012 da el complemento a 2: 11110
• 1210 con 5 dígitos es 01100
01100, 1210 = 011002
• 910 con 4 dígitos
910 = 10012 , 1001 sería el complemento a 2 ¡¡¡ERROR!!!
Escuela Politécnica Superior
90
45
REPRESENTACIÓN COMPLEMENTO A LA
BASE (COMPLEMENTO A 2 CON BASE 2)
• Observaciones:
• Positivos y negativos ( 1er bit 0(+), 1(-) )
• Desbordamientos:
• Ejemplo: valores mayores de 2n-1-1 (una
cadena de n-1 dígitos igual a 1) son positivos
pero se interpretan como negativos.
Escuela Politécnica Superior
91
REPRESENTACIÓN COMPLEMENTO A LA
BASE (COMPLEMENTO A 2 CON BASE 2)
1. Conversiones complemento a 2
• Algoritmo:
decimal
• Si el 1er bit es 0,
0 entonces se aplica la
conversión de binario a decimal.
• Si el 1er bit es 1, entonces se realiza el
complemento a 2 y se aplica la conversión de
binario a decimal y el valor es su opuesto.
• Ejemplos:
• Con 5 bits el número en complemento a 2 10100 representa
el valor -1210 , ya que el complemento a 2 de 10100 es 01100
y representa el valor binario puro de su opuesto 011002 = 1210
• Con 6 bits el número en complemento a 2 0001002 representa
el valor 410
Escuela Politécnica Superior
92
46
VALOR DECIMAL DE LOS NÚMEROS CON SIGNO
• Complemento a 2
- Los valores decimales de los números positivos
y
negativos en el sistema de complemento a 2, se
determinan sumando los pesos de todas las posiciones
de bit donde haya 1s, e ignorando aquellas posiciones
donde haya ceros.
- El peso del bit de signo en un número negativo viene
determinado por su valor negativo.
Escuela Politécnica Superior
93
VALOR DECIMAL DE LOS NÚMEROS CON SIGNO
• Complemento a 2
- Ejemplo: Determinar los valores decimales de los números
binarios con signo expresados en complemento a 2:
(a) 01010110
(b) 10101010
Solución. Para (a) 01010110:
(a) Los bits y sus pesos según las potencias de dos para el
número positivo son:
-2
27 26 25 24 23 22 21 20
0 1 0 1 0 1 1 0
sumando los pesos donde hay 1s:
64 + 16 + 4 + 2 = +86
Escuela Politécnica Superior
94
47
VALOR DECIMAL DE LOS NÚMEROS CON SIGNO
• Complemento a 2
- Ejemplo: (Continuación)
Solución Para (b) 10101010:
Solución.
(b) Los bits y sus pesos según las potencias de dos para el
número negativo son los siguientes (obsérvese que el
bit de signo negativo tiene un peso de -27, es decir,
-128):
-27 26 25 24 23 22 21 20
1 0 1 0 1 0 1 0
sumando los pesos donde hay 1s.
-128 + 32 + 8 + 2 = -86
Escuela Politécnica Superior
95
OPERACIONES EN COMPLEMENTO A 2
1. Cálculo del opuesto en complemento a 2
• Algoritmo:
El opuesto de un número en complemento a 2
es su complemento a 2
• Ejemplos:
• -210 con 5 dígitos es 11110, su opuesto es 210
(00010)
• 1210 con 5 dígitos
dí i
es 01100,
01100 su opuesto es -12
1210
(10100)
Escuela Politécnica Superior
96
48
OPERACIONES EN COMPLEMENTO A 2
2. Suma en Complemento a 2
• Algoritmo:
Sumar en binario puro (excepto cuando ambos son positivos o negativos):
• Si no hay acarreo final, el resultado es negativo.
• Si hay acarreo final, el resultado es positivo (se
desprecia el acarreo).
• Ejemplos:
y=-28
• Si n=8, x=63, y
• 63 en complemento a 2 es 00111111
• -28 en complemento a 2 es 11100100
2810 = 000111002 (8 bits)
Escuela Politécnica Superior
97
OPERACIONES EN COMPLEMENTO A 2
2. Suma en Complemento a 2
• Ejemplos: (Continuación)
28 en complemento a 1 es 11100011
12 + 111000112 = 111001002
•Se suma
0011 11 1 1
111001 00
100100011
• El resultado es 00100011 (001000112 = 3510).
• Si n=9, x=-75, y=40 ; x+y = 111011101 que es -3510
Escuela Politécnica Superior
98
49
OPERACIONES EN COMPLEMENTO A 2
• Suma
- Los dos números en una suma se denominan sumandos.
- El resultado es la suma.
- 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
absoluto.
3. El número negativo es mayor que el positivo en valor
absoluto.
4. Ambos números son negativos.
Escuela Politécnica Superior
99
OPERACIONES EN COMPLEMENTO A 2
• Suma
- Ambos números son positivos:
00000111
+ 00000100
00001011
7
+4
11
- La suma es positiva y, por tanto, es un número
binario real (no complementado).
Escuela Politécnica Superior
100
50
OPERACIONES EN COMPLEMENTO A 2
• Suma
- El número positivo es mayor que el número
negativo en valor absoluto:
Acarreo que
se descarta
00001111
+ 11111010
1 00001001
15
- 6
9
- El bit de acarreo final no se tiene en cuenta. La suma
ess positiva
siti y, por tanto
t t ess un número
ú
bi
binario
i reall (no
(
complementado).
Escuela Politécnica Superior
101
OPERACIONES EN COMPLEMENTO A 2
• Suma
- E
El número
m
negativo
g
es mayor
m y que
q
el número
m
positivo en valor absoluto:
00010000
16
+ 11101000 + - 24
11111000
-8
- La suma es negativa
g
complemento
l
a 2.
2
Escuela Politécnica Superior
y,
y
por
p
tanto,
está
en
102
51
OPERACIONES EN COMPLEMENTO A 2
• Suma
- Ambos números son negativos:
11111011
+ 11110111
1 11110010
Acarreo que
se descarta
-5
+ -9
-14
- El bit de acarreo final no se tiene en cuenta. La suma
es negativa y, por tanto, está en complemento a 2.
Escuela Politécnica Superior
103
OPERACIONES EN COMPLEMENTO A 2
• Condición de desbordamiento (overflow)
- Cuando se suman dos números y el número de bits
q
para representar
p
p
la suma excede al número
requerido
de bits de los dos números, se produce un
desbordamiento que se indica mediante un bit de signo
incorrecto.
- Un desbordamiento se puede producir sólo cuando
ambos números son positivos o negativos.
• Por ejemplo:
01111101
+ 00111010
10110111
Signo incorrecto
Magnitud incorrecta
Escuela Politécnica Superior
125
+ 58
183
104
52
OPERACIONES EN COMPLEMENTO A 2
• Sustracción
- La sustracción es un caso especial de la suma.
- Por ejemplo,
j p , restar +6 ((el sustraendo)) de +9 ((el minuendo))
es equivalente a sumar -6 a +9.
- Básicamente la operación de la sustracción cambia el signo
del sustraendo y le suma al minuendo.
- El resultado de una sustracción se denomina diferencia
• El signo de un número binario positivo o negativo se
cambia calculando su complemento a 2.
• Para restar dos números con signo se calcula el
complemento a 2 del sustraendo y se suman descartando
cualquier bit de acarreo final.
Escuela Politécnica Superior
105
CARACTERÍSTICAS DEL COMPLEMENTO A 2
• Suma independiente del signo.
• Más complicado que el complemento a 1.
• Posibilidad de desbordamientos:
- Ejemplo: 7910 + 11610 con n=8 resultado (11000011)
aparentemente -61, 19510 = 110000112 > 127 = 27-1
• Cero único (0...(n-2 ceros)...0).
• Un negativo representable más ([-2n-1, 2n-1-1], si
n=6, [-32, 31]).
Escuela Politécnica Superior
106
53
RANGO DE REPRESENTACIÓN DE LOS
NÚMEROS CON SIGNO
- Fórmula para calcular el número de combinaciones
diferentes de n bits:
Nº total de combinaciones = 2n
- Para los números con signo en complemento a 2, el rango de
valores para números de n bits es:
-(2n-1) a +(2n-1 - 1)
habiendo en cada caso un bit de signo y n-1 bits de
magnitud.
Por ejemplo, con cuatro bits pueden representarse
números en complemento a 2 en el rango de -(23) =-8 hasta
23-1=+7. Del mismo modo, con ocho bits, se puede abarcar
desde -128 hasta 127; con dieciséis bits se puede ir de
-32.768 hasta 32.767, etc.
Escuela Politécnica Superior
107
REPRESENTACIÓN EN EXCESO A M
1. Definición
La representación en exceso a M de un valor
x es la de x+M en binario puro.
Si n es el número de dígitos,
dígitos suele ser M=2nn-1.
• Observación
• No es un nuevo sistema de representación.
• Ejemplos:
• Si n=8 y M=128
• -3 es 12510 = 01111101
• 0 es 12810 = 10000000
• -128 es 010 = 00000000
• 127 es 25510 = 11111111
Escuela Politécnica Superior
108
54
REPRESENTACIÓN EN EXCESO A M
2. Características
• Es un sistema utilizado para la representación de
números reales en coma flotante.
• Similares a complemento a 2.
Escuela Politécnica Superior
109
NÚMEROS EN COMA FLOTANTE
- Un número en coma flotante (también conocido como
número real) tiene dos partes más un signo: mantisa y
exponente.
parte del número en coma f
flotante q
que
- La mantisa es la p
representa la magnitud del número.
- El exponente es la parte del número en coma flotante
que representa el número de lugares que se va a
desplazar el punto decimal (o punto binario).
- Para los números en coma flotante binarios, existe el
formato definido por el estándar ANSI/IEEE 7541985, que puede tomar tres formas: simple precisión
(32 bits), doble precisión (64 bits) y precisión ampliada
(80 bits).
Escuela Politécnica Superior
110
55
ESTÁNDARES DE REPRESENTACIÓN DE
COMA FLOTANTE
- Necesidad de estándares. Hay problemas relacionados
con coma flotante:
• Diferentes precisiones.
• Errores
E
d redondeo.
de
d d
• Implementación de las operaciones.
• Excepcionales: División entre 0; Desbordamiento.
• Diferentes
fabricantes
han
proporcionado
soluciones completas a estas situaciones a las que
se conoce como estándares de representación de
coma flotante.
- Ejemplos: (a) Estándar de IEE; (b) Estándares de
IBM; y (c) Estándar de IEEE 754-1985.
Escuela Politécnica Superior
111
ESTÁNDAR IEEE. NÚMEROS
BINARIOS EN COMA FLOTANTE DE
SIMPLE PRECISIÓN
- En el formato estándar ANSI/IEEE 754
754-1985
1985 para un
número binario de simple precisión, el bit de signo (S) es
el que se encuentra más a la izquierda, el exponente (E)
incluye los siguientes 8 bits y la mantisa o parte
fraccionaria (F) incluye los restantes 23 bits.
S
1 bit
Exponente (E)
8 bits
Escuela Politécnica Superior
32 bits
Mantisa (parte fraccionaria, F )
23 bits
112
56
ESTÁNDAR IEEE. NÚMEROS
BINARIOS EN COMA FLOTANTE DE
SIMPLE PRECISIÓN
- En la mantisa o parte fraccionaria, se entiende que el
punto binario estará a la izquierda de los 23 bits.
- Realmente, la mantisa consta de 24 bits, ya que, en
cualquier número binario, el bit más a la izquierda (más
significativo) es siempre 1. Por tanto, este 1 se entiende
que estará allí aunque no ocupe una posición de bit real.
- Los 8 bits de los que consta el exponente representan
un exponente desplazado que se ha obtenido mediante la
adición
di ión de
d 127 all exponente
xp n nt real.
l
- El propósito de este desplazamiento es poder definir
números muy grandes o muy pequeños sin necesidad de
emplear un bit de signo diferente para el exponente.
Escuela Politécnica Superior
113
ESTÁNDAR IEEE. NÚMEROS
BINARIOS EN COMA FLOTANTE DE
SIMPLE PRECISIÓN
- El exponente desplazado permite emplear un rango de
valores para los exponentes comprendidos entre -126
y +128.
- Ejemplo:
1011010010001 = 1,011010010001 x 212
S
0
E
F
10001011 01101001000100000000000
Número = (-1)s (1 + F) (2E-127)
Escuela Politécnica Superior
114
57
ESTÁNDAR IEEE. NÚMEROS BINARIOS EN
COMA FLOTANTE DE SIMPLE PRECISIÓN
- Ejemplo del método: dado el siguiente número binario en
coma flotante, determinar el número decimal
correspondiente:
p
1
10010001 10001110001000000000000
El bit de signo es 1. El exponente desplazado es:
10010001 = 145 ; aplicando la formula, obtenemos
145 127)
Nú
Número
= ((-1)
1)1 (1.10001110001)
(1 10001110001) (2145-127
= (-1) (1.10001110001) (218) = -1100011100010000000
Este número binario en coma flotante es equivalente a:
-407.680 en decimal.
Escuela Politécnica Superior
115
ESTÁNDAR IBM. NÚMEROS BINARIOS
EN COMA FLOTANTE DE SIMPLE
PRECISIÓN
- En el formato estándar IBM para un número binario de
simple precisión, el bit de signo (S) es el que se
encuentra más a la izquierda, el exponente (E) incluye los
siguientes 7 bits y la mantisa (M) incluye los restantes
24 bits.
Bit 31 30 29 28 27 26 25 24 23 …
S
26 …
32 bits
20 2-1 …
S < Exponente (E) desplazado > <
Escuela Politécnica Superior
0
2-24
Mantisa (M)
>
116
58
ESTÁNDAR IEE. NÚMEROS BINARIOS
EN COMA FLOTANTE DE SIMPLE
PRECISIÓN
- En el formato estándar IEE para un número binario de
simple precisión, el bit de signo (S) es el que se
encuentra en el bit 24, el exponente (E) incluye los 7
bits de más a la izquierda y la mantisa (M) incluye los
restantes 24 bits.
Bit 31 30 29 28 27 26 25 24 23 …
26
<
…
20
Exponente (E) desplazado
Escuela Politécnica Superior
0
32 bits
S 2-1 …
> S<
2-24
Mantisa (M)
>
117
ESTÁNDAR IEE. NÚMEROS BINARIOS
EN COMA FLOTANTE DE SIMPLE
PRECISIÓN
- Presenta dos precisiones: Precisión Sencilla o Simple
Precisión (32 bits, es decir dos palabras de 16 bits) y
D bl Precisión
Doble
P
i ió (64 bits,
bi
es decir
d i cuatro palabras
l b
d 16
de
bits).
- Observación práctica: Aparición frecuente de la
representación interna en hexadecimal. La base usada
en el estándar IEE es 16.
- Método para el estándar IEE. Ejemplo 1: ¿Cómo se
representa
p s nt por
p
ejemplo
j mpl ell número
núm
10 5010 en
10.50
n coma
m
flotante de simple precisión?
Escuela Politécnica Superior
118
59
ESTÁNDAR IEE. NÚMEROS BINARIOS
EN COMA FLOTANTE DE SIMPLE
PRECISIÓN
- Pasos:
11. Convertir 10.50
10 5010 a la base 16,
16 ya que la base usada en
este estándar es la 16. Es decir A.816.
2. Normalizar el número, es decir debemos mover el
punto decimal a la izquierda hasta que el número esté
normalizado. Un número en coma flotante está
normalizado cuando el dígito inmediatamente a la
derecha del punto (en la izquierda de la mantisa) no es
un 0 mientras
mi nt s que
qu ell número
núm
a la
l izquierda
i qui d del
d l punto
punt
decimal es un 0. Este 0 se omite cuando el número es
almacenado como una fracción. Es decir, tenemos:
.A8 E16 + 1.
Escuela Politécnica Superior
119
ESTÁNDAR IEE. NÚMEROS BINARIOS
EN COMA FLOTANTE DE SIMPLE
PRECISIÓN
- Pasos:
3. En el estándar IEE el exponente está desplazado por
64 es decir está en exceso 6410. Así,
64,
Así tenemos:
Desplazamiento + Exponente = Exponente Desplazado
6410
+
110
=
6510
Es decir 10000012 .
4. El signo es positivo, el bit que presenta el signo será
0.
5. El resultado final es:
1000 001
Exponente (E) desplazado
8
2
Escuela Politécnica Superior
0 1010 1000 0000 0000 0000 0000
S
Mantisa (M)
A
8
0
0
0
016
120
60
ESTÁNDAR IEE. NÚMEROS BINARIOS
EN COMA FLOTANTE DE SIMPLE
PRECISIÓN
- Ejemplo 2. Determinar el valor decimal del siguiente
número en hexadecimal en la forma de coma flotante
según el estándar IEE
IEE: 84 16 38 52.
- Pasos:
1. Convertir a binario el número hexadecimal:
8 4
1
6
3
8
5
2
1000 010 0 0001 0110 0011 1000 0101 0010
<Exponente>
p
Signo
g <
Mantisa
>
Signo: el bit de signo es 0, ya que el número es
positivo.
Escuela Politécnica Superior
121
ESTÁNDAR IEE. NÚMEROS BINARIOS
EN COMA FLOTANTE DE SIMPLE
PRECISIÓN
- Pasos:
2. Exponente: 10000102 = 6610 con un desplazamiento de
64 entonces el exponente real es E16 + 2.
64,
2
3. Mantisa: 16385216.
4. Como el exponente que hemos determinado es +2,
podemos desnormalizar el número moviendo dos lugares
a la derecha la coma decimal, así tenemos:
16.385216
5. Convertimos ahora a la base 10 el número y tenemos:
(1 x 161) + (6 x 160) , (3 x 16-1) + (8 x 16-2) + (5 x 16-3) + (2 x 16-4)
y finalmente se tiene: 22.2210.
Escuela Politécnica Superior
122
61
REPRESENTACIONES DE NÚMEROS
RACIONALES EN SISTEMAS POSICIONALES
1. Representación de la parte entera
• Visto en sesiones anteriores
2. Representación
p
de la parte
p
fraccionaria
• Convenios:
- Separación de la parte entera por la coma: ,
- Colocación: a la derecha de la parte entera.
parte_entera,parte_fraccionaria
• Ejemplos:
13,9510
A42F,1C16
36,7418
1011110,11012
Escuela Politécnica Superior
123
REPRESENTACIONES DE NÚMEROS
RACIONALES EN SISTEMAS POSICIONALES
1. Valor de un número fraccionario en base b
• El valor del número
e,f
• Se calcula:
- Suma del valor de la parte entera (e), y del
valor de la parte fraccionaria (f).
• Valor de la parte entera
- Visto en sesiones anteriores
Escuela Politécnica Superior
124
62
REPRESENTACIONES DE NÚMEROS
RACIONALES EN SISTEMAS POSICIONALES
• Valor de la parte fraccionaria
- Valores para las nuevas posiciones
Número … X4 X3 X2 X1 X0
¸
X-1 X-2 X-3 X-4 X-5
…
Posición … 4
¸
-1 -2 -3 -4 -5
…
¸
b-1 b-2 b-3 b-4 b-5
…
Valor
3 2
1
0
… b4 b3 b2 b1 b0
Escuela Politécnica Superior
125
REPRESENTACIONES DE NÚMEROS
RACIONALES EN SISTEMAS POSICIONALES
• Ejemplos
• Binario: 1011110,11012 = 94,812510
1
0
1
1
1
1
0
,
1
26 25 24 23 22 21 20
1
0
1
2-1 2-2 2-3 2-4
• Octal: 36,7418 = 30,93945312510
3
6
81
80
,
7
4
1
8-1 8-2 8-3
• Hexadecimal: A42F,1C16 = 42031,10937510
A
4
2 F
163 162 161 160
Escuela Politécnica Superior
,
1
C
16-1 16-2
126
63
CONVERSIONES DE RACIONALES
• Para convertir a otra base el número
e,f
• Se procede:
• Se convierte la parte entera (e).
• Se convierte la parte fraccionaria (f).
• Se escriben separadas por la coma.
- La conversión de la parte entera se ha visto en
sesiones anteriores.
• Conversiones de la parte fraccionaria a la decimal
- Se puede aplicar el cálculo de valor (decimal)
visto en sesiones anteriores.
Escuela Politécnica Superior
127
CONVERSIONES DE PARTE
FRACCIONARIA
1. Conversión decimal
hexadecimal
- Para convertir la parte fraccionaria decimal a
hexadecimal se procede:
• Posición
-1
• Repetir hasta suficiente número de decimales
hexadecimales:
- dígito de la posición
parte_entera(decimalx16)
- decimal
parte_fraccionaria(decimalx16)
- posición
posición - 1
Escuela Politécnica Superior
128
64
CONVERSIONES DE PARTE
FRACCIONARIA
• Ejemplos:
• 135,7810 = 87,C7...16
• Parte Entera:
• 13510 = 8716
• Parte Fraccionaria:
• 0,78 x 16 = 12,48 ⇒ dígito -1: 1210 = C16
• 0,48 x 16 = 7,48 ⇒ dígito -2: 710 = 716
•
...
Escuela Politécnica Superior
129
CONVERSIONES DE PARTE
FRACCIONARIA
2. Conversión decimal
octal
- Para convertir la parte fraccionaria decimal en
octal se procede:
• Posición
-1
• Repetir hasta suficiente número de decimales octales:
- dígito de la posición
parte_entera(decimalx8)
- decimal
parte fraccionaria(decimalx8)
parte_fraccionaria(
- posición
posición - 1
Escuela Politécnica Superior
130
65
CONVERSIONES DE PARTE
FRACCIONARIA
• Ejemplos:
• 135,7810 = 207,61...8
• Parte Entera:
• 13510 = 2078
• Parte Fraccionaria:
• 0,78 x 8 = 6,24 ⇒ dígito -1: 610 = 68
• 0,24 x 8 = 1,92 ⇒ dígito -2: 110 = 18
• …
Escuela Politécnica Superior
131
CONVERSIONES DE PARTE
FRACCIONARIA
3. Conversión decimal
binario
- Para convertir la parte fraccionaria decimal a
binario se procede:
• Posición
-1
• Repetir hasta suficiente número de decimales binarios:
- dígito de la posición
parte_entera(decimalx2)
- decimal
parte fraccionaria(decimalx2)
parte_fraccionaria(
- posición
posición - 1
Escuela Politécnica Superior
132
66
CONVERSIONES DE PARTE
FRACCIONARIA
• Ejemplos:
• 135,7810 = 10000111,110001...2
• Parte Entera:
• 13510 = 100001112
• Parte Fraccionaria:
• 0,78 x 2 = 1,56 ⇒ dígito -1: 1
• 0,56 x 2 = 1,12 ⇒ dígito -2: 1
• 0,12 x 2 = 0,24 ⇒ dígito -3: 0
• 0,24 x 2 = 0,48 ⇒ dígito -4: 0
• 0,48 x 2 = 0,96 ⇒ dígito -5: 0
• 0,96 x 2 = 1,92 ⇒ dígito -6: 1
• ...
Escuela Politécnica Superior
133
REPRESENTACIÓN DE NÚMEROS
NATURALES EN BCD
1. Observaciones previas
• Número de distintos números binarios de n cifras:
2n .
• Bits necesarios para representar {0
{0, 11..., 9}: 4 y sobran
4
(2 = 16, 16-10 = 6).
2. Definición
En los sistemas decimales codificados en binario se
convierten uno a uno, los dígitos decimales a binario.
2.1. Variantes
• Diferentes métodos BCD difieren:
- Número de bits usados por dígito.
- Tipo de representación de los dígitos.
- Uso del espacio sobrante.
Escuela Politécnica Superior
134
67
REPRESENTACIÓN DE NÚMEROS
NATURALES EN BCD
- El código decimal binario (BCD, Binary Coded Decimal)
es una forma de expresar cada uno de los dígitos
decimales con un código binario.
• El código
ódi 8421
- El código 8421 es un tipo de código decimal (BCD).
- Código decimal binario significa que cada dígito
decimal, de 0 hasta 9, se representa mediante un
código binario de cuatro bits.
- La designación 8421 indica los pesos binarios de los
cuatro bits (23, 22 , 21 , 20 ).
- La facilidad de conversión entre los números en código
8421 y los números decimales es la principal ventaja.
Escuela Politécnica Superior
135
REPRESENTACIÓN DE NÚMEROS
NATURALES EN BCD
- Tabla de la conversión decimal/BCD
Dígito decimal
BCD
0
1
2
3
4
5
6
7
8
9
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
• Códigos no válidos. Con cuatro dígitos, se pueden
representar dieciséis números (desde 0000 hasta
1111), pero en el código 8421, sólo se usan diez de
ellos. Las seis combinaciones q
que no se emplean
p
(1010,
1011, 1100, 1101, 1110 y 1111) no son válidas en el
código BCD 8421.
Escuela Politécnica Superior
136
68
BCD EXTENDIDO O DESEMPAQUETADO
1. Conversión decimal
BCD extendido
• Uso de un octeto (8 bits) por dígito decimal.
• Representación de los dígitos: binario puro.
• Cuartetos (4 bits) no usados de relleno (por defecto a 0).
- Ejemplos:
• 31710 es:
0000 0011 0000 0001 0000 0111
• 12510 es:
0000 0001 0000 0010 0000 0101
• 25610 es:
s:
0000 0010 0000 0101 0000 0110
• 4578510 es:
0000 0100 0000 0101 0000 0111 0000 1000 0000 0101
Escuela Politécnica Superior
137
BCD EXTENDIDO O DESEMPAQUETADO
2. Conversión BCD extendido
decimal
• Proceso Inverso
- Ejemplo:
0000 1000 0000 0111 0000 0101 0000 0000 0000 0001
es 8750110
Escuela Politécnica Superior
138
69
BCD CONDENSADO O EMPAQUETADO
1. Conversión decimal
BCD empaquetado
• Idem usando cuartetos (4 bits)
- Ejemplos:
• 31710 es: 0011 0001 0111
• 12510 es: 0001 0010 0101
• 25610 es: 0010 0101 0110
• 4578510 es: 0100 0101 0111 1000 0101
2. Conversión BCD empaquetado
• Proceso
roc so Inverso
n rso
decimal
- Ejemplo:
• 0001 0000 0000 0000 0100 0111
es 10004710
Escuela Politécnica Superior
139
BCD CONDENSADO O EMPAQUETADO
• Conversión Decimal
BCD Empaquetado
- Ejemplo: Convertir a BCD los siguientes números decimales.
(a) 35
(b) 98
(c) 170
(d) 2469
Solución.
(a) 3
5
0011 0101
(b)
9
8
1001 1000
Escuela Politécnica Superior
(c) 1
7
0
(d) 2
4
6
9
0001 0111 0000 0010 0100 01101001
140
70
BCD CONDENSADO O EMPAQUETADO
• Conversión BCD Empaquetado
Decimal
- Ejemplo: Convertir a decimal los siguientes códigos BCD:
(a) 10000110
(b) 001101010001 (c) 1001010001110000
Solución.
((a)) 1000 0110 ((b)) 0011 0101 0001 ((c)) 1001 0100 0111 0000
8
6
3
5
1
9
Escuela Politécnica Superior
4
7
0
141
SUMA EN BCD
- BCD es un código numérico y puede utilizarse en
operaciones aritméticas.
- La suma es la más importante de estas operaciones ya
que las otras tres operaciones
q
p
((sustracción,
multiplicación y división) se pueden llevar a cabo
utilizando la suma.
- Método para sumar dos números BCD:
Paso 1. Sumar los dos números BCD utilizando las reglas de la suma
binaria vistas anteriormente.
Paso 2. Si una suma de 4 bits es igual o menor que 9, es un número BCD
válido
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 de 4 bits para saltar así los seis estados no válidos y
pasar al código 8421. Si se genera un acarreo al sumar 6, éste se suma
al grupo de 4 bits siguiente.
Escuela Politécnica Superior
142
71
SUMA EN BCD
- Ejemplo de la suma en BCD para los casos en que la suma
en cada columna de 4 bits es igual o menor que 9 y, por
tanto, las sumas de 4 bits son números BCD válidos.
• Ejemplo: Sumar los siguientes números BCD:
(b) 00100011 + 00010101
(a) 0011 + 0100
(c) 10000110 + 00010011
(d) 010001010000 + 010000010111
Solución. Se muestra la suma en decimal con propósitos
p
de comparación.
(a) 0011
3
(b) 0010
0011
23
+0100
0111
+ 4
7
+ 0001
0011
0101
1000
+ 15
38
Escuela Politécnica Superior
143
SUMA EN BCD
• Ejemplo:
Solución. (Continuación)
(c) 1000
+ 0001
1001
0110
86
(d) 0100
0101 0000
450
0011 + 13
1001 99
+ 0100
1000
0001 0111
0110 0111
+ 417
867
Observe que en ningún caso la suma de las cuatro
columnas de 4 bits excede 9, por lo que los resultados
son números
ú
BCD válidos.
álid
Escuela Politécnica Superior
144
72
SUMA EN BCD
- Ejemplo del procedimiento en el caso de que se
produzcan sumas no válidas (mayores que 9 o que
generen acarreo).
• Ej
Ejemplo:Sumar
mp o Sumar los
os siguientes
s gu nt s núm
números
ros BCD:
D
(a) 1001 + 0100
(b) 1001 + 1001
(c) 00010110 + 00010101
(d) 01100111 + 01010011
Solución. La suma en números decimales se indica con
propósitos de comparación.
(a)
1001
+ 0100
1101 Número BCD no válido (> 9)
+ 0110 Se suma 6
0001 0011 Número BCD válido
1
9
+ 4
13
3
Escuela Politécnica Superior
145
SUMA EN BCD
• Ejemplo: Sumar los siguientes números BCD:
(a) 1001 + 0100
( ) 00010110 + 00010101
(c)
(b) 1001 + 1001
(d) 01100111 + 01010011
Solución.
(b)
1001
+ 1001
1
0010
+ 0110
0001 1000
1
9
+ 9
No válido debido al acarreo
18
Se suma 6
Número BCD válido
8
Escuela Politécnica Superior
146
73
SUMA EN BCD
• Ejemplo: Sumar los siguientes números BCD:
(a) 1001 + 0100
(c) 00010110 + 00010101
(b) 1001 + 1001
(d) 01100111 + 01010011
Solución.
(c)
0001 0110
+ 0001 0101
0010 1011 El grupo de la derecha no es
16
+ 15
31
válido ((>9),
) el g
grupo
p de la izquierda
q
sí.
+ 0110 Se suma 6 al código no válido.
0011
Se suma el acarreo, 0001, al siguiente grupo.
0001 Número BCD válido
3
1
Escuela Politécnica Superior
147
SUMA EN BCD
• Ejemplo: Sumar los siguientes números BCD:
(a) 1001 + 0100
( ) 00010110 + 00010101
(c)
(b) 1001 + 1001
(d) 01100111 + 01010011
Solución.
(d)
0110 0111
67
+ 0101 0011
+ 53
1011 1010 Ambos grupos no son válidos (>9). 120
0001
1
+ 0110 + 0110 Se suma 6 a ambos grupos
0010 0000 Número BCD válido
2
Escuela Politécnica Superior
0
148
74
REPRESENTACIÓN DE ENTEROS EN
BCD EXTENDIDO
1. Representación del signo
• En el cuarteto no utilizado del octeto del dígito
menos significativo.
• Posibles valores:
• Por defecto
+
-
0000
1111
• Otros
+
-
B16 = 1011
D16 = 1101
Escuela Politécnica Superior
149
REPRESENTACIÓN DE ENTEROS EN
BCD EXTENDIDO
2. Ejemplos
• +38110 es en BCD extendido:
extendid :
0000 0011 0000 1000 0000 0001
• -38110 es en BCD extendido:
0000 0011 0000 1000 1111 0001
3 Características de BCD
3.
• Útil en determinadas circunstancias (con datos de
poco proceso).
Escuela Politécnica Superior
150
75
REPRESENTACIÓN DE ENTEROS EN
BCD EMPAQUETADO
1. Representación del signo
• Idem desempaquetado excepto que es el primer
cuarteto.
2. Ejemplos
• +38110 es en BCD empaquetado:
0011 1000 0001 0000
• -38110 es en BCD empaquetado:
0011 1000 0001 1111
3. Características de BCD
• Útil en determinadas circunstancias (con datos de
poco proceso).
Escuela Politécnica Superior
151
CÓDIGO ALFANUMÉRICO
- Para la comunicación, no sólo se necesitan números, sino
también letras y otros símbolos.
- En sentido estricto, los códigos alfanuméricos son
códigos
g
que representan
q
p
números y caracteres
alfabéticos (letras).
- Sin embargo, la mayoría de estos códigos también
representan otros caracteres tales como símbolos y
distintas instrucciones para la transferencia de
información.
- Como mínimo, un código alfanumérico debe poder
representar
t los
l diez
di
dí it decimales
dígitos
d i l
y las
l 26 letras
l t
del alfabeto, es decir, un total de 36 elementos.
- Esta cantidad requiere seis bits para cada combinación
de código, puesto que cinco son insuficientes (25=32).
Escuela Politécnica Superior
152
76
CÓDIGO ALFANUMÉRICO
- Con seis bits se tiene un total de 64 combinaciones, por
lo que 28 de ellas no se utilizan.
- En muchas aplicaciones, para completar la comunicación,
son necesarios otros símbolos además de los números y
las letras. Se necesitan espacios, puntos, dos puntos,
punto y coma, signo de interrogación, etc.
- También se necesitan instrucciones para comunicar al
sistema receptor qué hacer con la información.
- De este modo, con códigos con una longitud de seis bits,
se pueden manejar números decimales, el alfabeto y
otros 28 símbolos. El ASCII es el código alfanumérico
más común. Otros ejemplos de códigos son: Videotext y
EBCDIC.
Escuela Politécnica Superior
153
CÓDIGO ASCII
- El American Standard Code for Information
Interchange (ASCII, Código Estándar Americano para
el Intercambio de Información) es un código
alfanumérico universalmente aceptado, que se usa en la
mayoría de las computadoras y otros equipos
electrónicos.
- La mayor parte de los teclados de computadora se
estandarizan de acuerdo con el código ASCII, y cuando
se pulsa una letra, un número o un comando de control,
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ódigo binario de 7 bits. El
código ASCII puede considerarse como un código de 8
bits en el que el MSB siempre es 0.
Escuela Politécnica Superior
154
77
CÓDIGO ASCII
- En Hexadecimal, este código de 8 bits va de 00 hasta
7F.
- Los primeros 32 caracteres ASCII son comandos no
gráficos,
áfi
que nunca se imprimen
i
i
o presentan en
pantalla, y solo se utilizan para propósitos de control.
Ejemplos de caracteres de control son el carácter nulo,
avance de línea, inicio de texto y escape.
- Los demás caracteres son símbolos gráficos que pueden
p
o mostrarse en p
pantalla, e incluyen
y las letras
imprimirse
del alfabeto (mayúsculas y minúsculas), los diez dígitos
decimales, los signos de puntuación y otros símbolos
comúnmente utilizados.
Escuela Politécnica Superior
155
CÓDIGO ASCII
- Tabla del Código ASCII, con su representación decimal,
hexadecimal y binaria para cada carácter y símbolo.
(
(En
la p
primera columna de la tabla se enumeran los
nombres de los 32 caracteres de control (en hexadecimal,
de 00 hasta 1F), y en las restantes columnas se muestran
los símbolos gráficos (en hexadecimal, de 20 hasta 7F)).
Escuela Politécnica Superior
156
78
CÓDIGO ASCII
Tabla: American Standard Code for Information Interchange (ASCII)
Escuela Politécnica Superior
157
CÓDIGO ASCII EXTENDIDO
- Además de los 128 caracteres ASCII estándar, existen
128 caracteres adicionales que fueron adoptados por
IBM para utilizar en sus computadoras personales (PC).
- Debido a la popularidad del PC, estos caracteres
especiales del código ASCII extendido se usan también
en otras aplicaciones distintas de las PC, por lo que se
ha convertido en un estándar oficial.
- Los caracteres del código ASCII extendido se
representan mediante una serie de códigos de 8 bits
que van, en hexadecimal, del 80 hasta FF.
Escuela Politécnica Superior
158
79
CÓDIGO ASCII EXTENDIDO
- El código ASCII extendido está formado por
caracteres que pertenecen a las siguientes categorías
generales:
1. Caracteres alfabéticos no ingleses
2 Símbolos
2.
í b l de
d moneda
d no ingleses
i l
3. Letras griegas
4. Símbolos matemáticos
5. Caracteres para gráficos
6. Caracteres para gráficos de barras
7. Caracteres sombreados.
- Tabla del conjunto de caracteres del código ASCII
extendido, junto con sus representaciones decimal y
hexadecimal.
Escuela Politécnica Superior
159
CÓDIGO ASCII EXTENDIDO
Tabla: Caracteres de código ASCII extendido
Escuela Politécnica Superior
160
80
EBCDIC
- EBCDIC (Extended Binary Coded Decimal Interchange
Code)
- Es un código de 8 bits.
bits
- Está representado por la tabla que se adjunta.
- Puede observarse que los números se representan en
BCD desempaquetado pero el primer cuarteto se
completa con bits 1.
Escuela Politécnica Superior
161
EBCDIC
- Ejemplos:
• Ejemplo 1:
Escuela Politécnica Superior
162
81
EBCDIC
- Ejemplos:
• Ejemplo 2:
Escuela Politécnica Superior
163
UNICODE
- Código de E/S propuesto por un consorcio de empresas y
entidades que permite escribir aplicaciones que sean capaces
de procesar texto de diversos sistemas de escritura. Está
reconocido como estándar ISO/IEC 10646.
10646
- Propiedades de Unicode:
*
Universalidad: persigue cubrir la mayoría de lenguajes
escritos existentes en la actualidad.
*
Unicidad: a cada carácter se le asigna exactamente un
único código.
*
Uniformidad: todos los símbolos se representan con un
número fijo de 16 bits.
Escuela Politécnica Superior
164
82
UNICODE
- Características de Unicode:
*
Cada carácter Unicode está formado por una cadena de
16 bits => se pueden codificar 216 = 65.356 símbolos.
*
No contempla la codificación de caracteres de control.
*
Incluye caracteres combinados (por ej., ñ, ä, ç).
*
No determina la forma o imagen concreta de cada
carácter (el “font” o fuente), sino que cada combinación
representa un concepto abstracto.
abstracto Un mismo carácter puede
ser escrito de distintas formas y todas las variantes se
codifican con una única combinación.
Escuela Politécnica Superior
165
UNICODE
- Características de Unicode:
*
También con la misma idea de evitar duplicidades,
caracteres muy parecidos en idiomas distintos, tienen igual
posición en el código. Esto ocurre por ejemplo con los
ideogramas japoneses, chinos y coreanos; aunque su imagen
sea distinta, si su significado es el mismo tienen igual código.
*
No ocurre lo mismo con las letras mayúsculas y
minúsculas de los caracteres latinos que tienen códigos
di i
distintos.
*
Su utilización está facilitando la compatibilidad de
programas y datos a través de todo el mundo.
Escuela Politécnica Superior
166
83
UNICODE
- Esquema de asignación de códigos en Unicode
Escuela Politécnica Superior
167
UNICODE
- Ejemplo: Codificar la cadena de caracteres C/Rúa, 7 en
ASCII (ISO 8859-1, Latín 1) y en Unicode
Nótese que para obtener la codificación Unicode hemos añadido 8
bits [0] delante de cada código ASCII de 8 bits.
Escuela Politécnica Superior
168
84
Descargar