Representación de la Información en un
computador
Ingeniería de Sistema y Automática
Universidad de Valladolid
Índice
Sistemas de numeración:
Binarios
Octales
Hexadecimales
Operaciones. Transformaciones
Códigos de Entrada/Salida
Representación interna de la información
Números enteros
Números reales.
Circuitos lógicos y Álgebra de Boole
Álgebra de Boole
Funciones de conmutación
Sistema de numeración
Sistema de numeración en base b => alfabeto
formado por b símbolos.
Cada cifra contribuye:
La Cifra en sí
La posición dentro del número
Ejemplo: sistema de numeración decimal:
b=10 => {0,1,2,3,4,5,6,7,8,9}
4518.31=4*103+5*102+1*101+8*100 + 3*10-1+1*10-2
N=...n4n3n3n1n0.n-1n-2n-3......
N= ... n4b4 + n3b3 +n2b2 + n1b1+ n0b0 + n-1b-1 +...
Sistema binario
b = 2 => {0,1}
Binario Decimal
10100.001)2 = 1*24 + 0*23 + 1*22 + 1*2-3
=20.125)10
Decimal Binario
Parte entera se divide entre 2
Parte decimal se multiplica por 2
Ejemplo: 26.1875)10= 11010.0011)2
Sistema binario
Operaciones aritméticas:
Suma a b a+b
Resta 0 0 0
0 1 1
a b a-b
1 0 1
0 0 0
1 1 0 y me
0 1 1 y me llevo 1
llevo 1
1 0 1
1 1 0
Sistema binario
Operaciones aritméticas a b a*b
Multiplicación 0 0 0
División. 0 1 0
1 0 0
1 1 1
a b a/b
0 0 Indeterminado
0 1 0
1 0 ∞
1 1 1
Sistema binario
a b a OR b
Operaciones lógicas 0 0 0
OR 0 1 1
AND 1 0 1
NOT 1 1 1
a b a AND b
0 0 0 a NOT a
0 1 0 0 1
1 0 0 1 0
1 1 1
Sistema binario
Representación en complementos
Complemento a la base menos uno de un nº
N es el nº que resulta de restar cada una de
las cifras de N de la base menos uno del
sistema de numeración utilizado:
Base 10 => C9
Ejemplo: C9 63 = 99-63 = 36
Base 2 => C1
Ejemplo: C1 10010 = 11111-10010 = 01101
C1 => cambiar los ceros por los unos y los
unos por los ceros
Sistema binario
Sirve para realizar las restas como sumas.
Ejemplo: 77 – 63 = 14
77 + 36 = 113+ 1 = 14
C9 63
Ejemplo:
1000111 – 10010 = 0110101
1000111 + 1101101 = 10110100 + 1 = 0110101
C110010
Sistema binario
Complemento a la base de un nº N, es el nº
que resulta de restar cada una de las cifras de
N de la base menos uno del sistema de
numeración utilizado, y sumar 1 a la diferencia
obtenida.
Base 10 => C10
Ejemplo: C10 63 = 99-63 = 36 +1 = 37
Base 2 => C2
Ejemplo: C2 10010 = 11111 – 10010 =
01101+1 = 01110
Sistema binario
Sirve para convertir las restas en sumas:
Ejemplo: 77 – 63 = 14
77 + 37 = 114
C10 63
Ejemplo: 11001 – 10010 = 00111
11001 + 01110 = 1 00111
C2 10010
Sistema octal
b = 8 = 23 Alfabeto: {0,1,2,3,4,5,6,7}
Binario Octal
10 001 101 100.100 10)2 = 2154.64)8
2 1 5 4 6 4
Octal Binario
537.24)8 = 101 011 111. 010 100)2
Octal Decimal
1367.25)8 = 1 83 + 3 82 + 6 81 + 7 80 + 2 8-1 +
5 8-2 = 759.328125)10
Sistema octal
Decimal Octal
Parte entera se divide por 8
Parte decimal se multiplica por 8 y sólo nos
quedamos con la parte entera.
Ejemplo: 760.33)10 =1370.2507)8
Tabla:
Binario Octal Binario Octal
000 0 100 4
001 1 101 5
010 2 110 6
011 3 111 7
Sistema hexadecimal
b = 16 = 24 => Abecedario:
{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
Binario Hexadecimal
010 0101 1101 1111. 1010 101)2 = [Link])H
2 5 D F B A
Hexadecimal Binario
1ABC701.C4)H = 0001 1010 1011 1100 0111
0000 0001. 1100 0100)2
Sistema hexadecimal
Hexadecimal Decimal
A798C.1E)H = 10 * 164 + 7 * 163 + 9 * 162 + 8 *
161 + 12 * 160 + 1 * 16-1 + 14 * 16-2 =
686476.1171)10
Binario Hexadecimal
Parte entera se divide por 16
Parte decimal se multiplica por 16 y nos
quedamos sólo con la parte entera de cada
multiplicación.
Ejemplo:4373.79)10 = 11DD.CA3D)H
Sistema hexadecimal
Binario Deci- Hexa- Binario Deci- Hexa-
mal decimal mal decimal
0000 0 0 1000 8 8
0001 1 1 1001 9 9
0010 2 2 1010 10 A
0011 3 3 1011 11 B
0100 4 4 1100 12 C
0101 5 5 1101 13 D
0110 6 6 1110 14 E
0111 7 7 1111 15 F
Códigos de Entrada/Salida (E/S)
Código E/S: es una correspondencia
biunívoca entre dos conjuntos
Caracteres combinación de bits
α ={0,...,9,A,,...,Z,a,...,z, ;,:,...} β = {0, 1}n
donde n es el nº de bits
Si n=2 4 combinaciones
Si n=3 8 combinaciones
Si n=n m= 2n combinaciones
Por el contrario, si queremos representar m
símbolos ¿cuántos bits necesitamos?
m = 2n => n ≥ log2 m
Códigos de Entrada/Salida (E/S)
Código BCD (intercambio normalizado), tiene
n=6 bits => m=26 = 64 símbolos
Código EBCDIC con n=8
Código ASCII (American Standard Code for
Information Interchange) n=7 bits
m
Eficiencia de un código: τ= 0≤τ≤1
n
2
Ejemplo: ASCII para representar 95 símbolos:
τ = 95 / 27 = 0.742
Redundancia: R = (1 - τ)* 100%
Ejemplo: R=(1-0.742)*100 = 25.8%
Códigos de Entrada/Salida (E/S)
Un código poco eficiente es redundante
Redundancia es útil para detectar errores
Dos criterios:
Bit de paridad par: se añade un bit para que el
número total de 1 sea par.
Bit de paridad impar: se añade un bit para que
el número total de 1 sea impar.
100 0001 0100 0001 (par)
101 1011 1101 1011 (par)
000 0000 1000 0000 (impar)
110 1000 0110 1000 (impar)
Representación interna de la información
En la memoria y en la CPU la información se
transmite y almacena en palabras.
La longitud de palabra debe ser múltiplo
entero del nº de bits utilizados para
representar un carácter (8,16,32 o 64 bits)
Los datos se introducen según un código E/S
253)10= 1011 0010 0011 0101 0011 0011)ASCII
253)10 = 11111101)2
El computador realiza una conversión del
código de E/S a una representación interna.
Representación interna de la información
Números enteros:
Varias formas:
Sin signo: en base 2 => 18)10= 0001 0010)2
Con signo:
Signo y magnitud: en el bit más significativo
(MSB) se pone el signo (0 para positivos y 1
para negativos) y luego el número en binario.
Complemento a 1: en el MSB se pone el signo,
y luego el número en complemento a 1, para
negativos, y en binario natural para positivos.
Complemento a 2: en el MSB se pone el signo,
y luego el número en complemento a 2 para
negativos y en binario natural para positivos.
Representación interna de la información
Ejemplo: N = -3675 con n=16 bits.
3675)10 = 1110 0101 1011)2
3675)10 = 0000 1110 0101 1011)2 con 16 bits
Sin signo => 0000 1110 0101 1011
Con signo:
Signo y magnitud => 1000 1110 0101 1011
Complemento a 1 => 1111 0001 1010 0100
Complemento a 2 => 1111 0001 1010 0101
Representación interna de la información
Números reales:
Notación científica => N = M BE
Normalización IEEE754
B=2 predeterminado
El nº se representa como : s e m
s: campo del signo => 1bit: 0 si el nº es
positivo, 1 si es negativo
e: campo del exponente => ne bits: se
representa como el exponente + el sesgo =>
E+S donde S = 2ne-1 – 1;
m: campo de la mantisa => nm bits que se
calculan como => n= 1 + ne + nm, con n el nº
total de bits para representar el número.
Representación interna de la información
La mantisa tiene que estar normalizada:
1.00110 2E y el primer 1 no se almacena.
Ejemplo: N = -37.48 n=16 bits y ne=8.
37.48)10= 111101.01111010 )2
Normalizar el número y ponerle de forma
exponencial: 1.1110101111010 25
Signo: 1 => número negativo
Exponente: e = E+S = 5 + 28-1 –1 = 132)10=
11000100)2
Mantisa: nm=16-1-8= 7 => m=1110101
N = 1 1100100 1110101 => s e m
Representación interna de la información
Situaciones especiales:
Cuando e=0, la mantisa se almacena
desnormalizada y el valor de E = e – 2ne-1 +2
El número N=0, se representa con todos los
bits del exponente y la mantisa a 0
Si todos los bits del exponente son 1
Si m=0 => representa ±∞
Si m≠ 0 => representa un NaN (valores no
válidos)
Precisión:
Simple: n=32 bits, ne=8
Doble: n=64 bits , ne=11
Circuitos lógicos y Algebra de Boole
Sistemas:
Analógicos: variables continuas (Tª, presión...)
Digitales: un dispositivo destinado a la
generación y/o transmisión y/o procesamiento
y/o almacenamiento de la información, la cual
está representada por variables físicas
limitadas a tener valores discretos.
Sistema digital con sólo dos valores discretos
se llama sistema binario.
Sistema digital se puede representar como:
Bloque con entradas y salidas
Tabla de verdad
Algebra de Boole
Herramienta matemática para el análisis y
síntesis de sistemas digitales
Postulados:
Conjunto de elementos, ∃ B / x,y ∈B / x≠y
Leyes de composición interna: ∀ x, y ∈B
x.y ∈B y x+y ∈B
Elementos neutros únicos:
∃ 0 ∈B / ∀ x∈B x + 0 = 0 + x = x
∃ 1 ∈B / ∀ x∈B x . 1 = 1 . x = x
Conmutatividad:
∀ x, y ∈B x + y = y + x ; x.y=y.x
Algebra de Boole
Distributividad:
∀ x, y, z ∈B x + ( y + z) = (y+x) . (x+z) ;
x . (y + z) = (x . y) + (x . z)
Asociatividad:
∀ x, y, z ∈B x + (y+z) = (y + x)+z = x+y+z;
x . (y . z) = (x . y) . z = x . y . Z
Elemento opuesto (complementó) único
∀ x∈B ∃ x ∈B / x + x =1; x . x = 0
Ejemplos de Algebra de Boole:
B={0, 1} con las operaciones AND, OR y NOT
B = conjuntos, con la ∪ y la ∩
Funciones de conmutación
Una variable de conmutación es símbolo que
sólo puede tomar el valor 1 o el 0.
Función de conmutación f(x1, x2,...,xn) es una
aplicación: f {0, 1}n {0,1}
Se puede representar:
Tabla de verdad
Explicitamente: f(x,y,z) = x . (y+z) + y.z
Ejemplo: f(0,0,0) =0, f (010) = 0 ...
Funciones de conmutación
Algebra de conmutación, es una álgebra de
Boole con los siguientes elementos:
Relación de igualdad: dos funciones son
iguales si lo son sus tablas de verdad.
Operación Y (.) Operación O (+) Complemento
Y 0 1 O 0 1 -
0 0 0 0 0 1 0 1
1 0 1 1 1 1 1 0
Funciones de conmutación
Elemento 0 => función {0,1}n 0
Elemento 1 => función: {0,1}n 1
Minterms: es una función que asigna un 1 a
una combinación de entradas y 0 a todas las
demás.
Toda función de conmutación de n variables
se puede poner como una suma única de
minterms. (aparece un minterm por cada 1
que aparezca en la tabla de verdad de la
función)
Funciones de conmutación
x1 x2 x3 m0 m3 m6 minterms f1 f2
0 0 0 1 0 0 x1 x 2 x 3 0 0
0 0 1 0 0 0 x1 x 2 x 3 0 1
0 1 0 0 0 0 x1 x 2 x 3 0 1
0 1 1 0 1 0 x1 x 2 x 3 1 0
1 0 0 0 0 0 x1 x 2 x 3 1 0
1 0 1 0 0 0 x1 x 2 x 3 1 0
1 1 0 0 0 1 x1 x 2 x 3 1 0
1 1 1 0 0 0 x1 x 2 x 3 0 1
f1 = x 1 x 2 x 3 + x 1 x 2 x 3 + x 1 x 2 x 3 + x1 x 2 x 3
f2 = x1 x 2 x 3 + x 1 x 2 x 3 + x 1 x 2 x 3
Funciones de conmutación
Maxterms:es una función que asigna un 0 a
una combinación de entradas y 1 a todas las
demás.
Toda función de conmutación de n variables
se puede poner como un producto único de
maxterms. (Hay un maxterm por cada 0 que
aparezca en la tabla de verdad de la función)
Funciones de conmutación
x1 x2 x3 M0 M3 M6 Maxterms f1 f2
0 0 0 0 1 1 x1 + x2 + x3 0 0
0 0 1 1 1 1 x1 + x2 + x 0 1
3
0 1 0 1 1 1 x1 + x 2+ x3 0 1
0 1 1 1 0 1 x1 + x 2 + x 3 1 0
1 0 0 1 1 1 x1 + x 2 + x 3 1 0
1 0 1 1 1 1 x1 + x 2 + x 3 1 0
1 1 0 1 1 0 x1 + x 2 + x 3 1 0
1 1 1 1 1 1 x1 + x 2 + x 3 0 1
f1 = ( x1 + x 2 + x 3 ) * ( x1 + x 2 + x 3 ) * ( x1 + x 2 + x 3 ) * ( x1 + x 2 + x 3 )
f2 = ( x1 + x 2 + x 3 ) * ( x1 + x 2 + x 3 ) * ( x1 + x 2 + x 3 ) * ( x1 + x 2 + x 3 ) * ( x1 + x 2 + x 3 )
Funciones de conmutación
Circuito lógico: dos posibilidades
x1
x1 x2
x3
x2
x3 x1
x2
x1 f1 x3 f1
x2
x1
x3
x2
x1 x3
x2
x1
x3
x2
x3