Representación de la Información en un computador
Ingeniería de Sistema y AutomáticaUniversidad de Valladolid
Índice
Sistemas de numeración:BinariosOctalesHexadecimalesOperaciones. Transformaciones
Códigos de Entrada/SalidaRepresentación interna de la información
Números enterosNúmeros reales.
Circuitos lógicos y Álgebra de BooleÁlgebra de BooleFunciones 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 BinarioParte entera se divide entre 2Parte decimal se multiplica por 2Ejemplo: 26.1875)10= 11010.0011)2
Sistema binario
Operaciones aritméticas:SumaResta
a b a + b0 0 00 1 11 0 11 1 0 y me
llevo 1
a b a - b0 0 00 1 1 y me
llevo 11 0 11 1 0
Sistema binarioa b a * b
0 0 00 1 01 0 01 1 1
Operaciones aritméticasMultiplicaciónDivisión.
a b a / b0 0 Indeterminado0 1 01 0 ∞1 1 1
Sistema binarioa b a OR b0 0 00 1 11 0 11 1 1
Operaciones lógicasORANDNOT
a b a AND b0 0 00 1 01 0 01 1 1
a NOT a0 11 0
Sistema binario
Representación en complementosComplemento 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 = 01101C1 => cambiar los ceros por los unos y los unos por los ceros
Sistema binarioSirve para realizar las restas como sumas.
Ejemplo: 77 – 63 = 1477 + 36 = 113+ 1 = 14
C9 63
Ejemplo:1000111 – 10010 = 01101011000111 + 1101101 = 10110100 + 1 = 0110101
C110010
Sistema binarioComplemento 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 = 1477 + 37 = 114
Ejemplo: 11001 – 10010 = 0011111001 + 01110 = 1 00111
C10 63
C2 10010
Sistema octal
b = 8 = 23 Alfabeto: {0,1,2,3,4,5,6,7}
Binario Octal10 001 101 100.100 10)2 = 2154.64)8
Octal Binario537.24)8 = 101 011 111. 010 100)2
Octal Decimal1367.25)8 = 1 83 + 3 82 + 6 81 + 7 80 + 2 8-1 + 5 8-2 = 759.328125)10
2 1 5 4 6 4
Sistema octal
Decimal OctalParte entera se divide por 8Parte decimal se multiplica por 8 y sólo nos quedamos con la parte entera.Ejemplo: 760.33)10 =1370.2507)8
Tabla:Binario Octal
000 0001 1010 2011 3
Binario Octal100 4101 5110 6111 7
Sistema hexadecimal
b = 16 = 24 => Abecedario: {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
Binario Hexadecimal010 0101 1101 1111. 1010 101)2 = 25DF.BA)H
Hexadecimal Binario1ABC701.C4)H = 0001 1010 1011 1100 0111 0000 0001. 1100 0100)2
2 5 D F B A
Sistema hexadecimal
Hexadecimal DecimalA798C.1E)H = 10 * 164 + 7 * 163 + 9 * 162 + 8 * 161 + 12 * 160 + 1 * 16-1 + 14 * 16-2 = 686476.1171)10
Binario HexadecimalParte entera se divide por 16Parte 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-mal
Hexa-decimal
0000 0 00001 1 10010 2 20011 3 30100 4 40101 5 50110 6 60111 7 7
Binario Deci-mal
Hexa-decimal
1000 8 81001 9 91010 10 A1011 11 B1100 12 C1101 13 D1110 14 E1111 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 combinacionesSi n=3 8 combinacionesSi 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ímbolosCódigo EBCDIC con n=8Código ASCII (American Standard Code for Information Interchange) n=7 bits
Eficiencia de un código: 0≤τ≤1
Ejemplo: ASCII para representar 95 símbolos: τ = 95 / 27 = 0.742
Redundancia: R = (1 - τ)* 100%Ejemplo: R=(1-0.742)*100 = 25.8%
nm2
=τ
Códigos de Entrada/Salida (E/S)
Un código poco eficiente es redundanteRedundancia es útil para detectar erroresDos 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/S253)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ónNúmeros enteros:Varias formas:
Sin signo: en base 2 => 18)10= 0001 0010)2Con 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 bitsSin signo => 0000 1110 0101 1011Con signo:
Signo y magnitud => 1000 1110 0101 1011Complemento a 1 => 1111 0001 1010 0100Complemento a 2 => 1111 0001 1010 0101
Representación interna de la informaciónNúmeros reales:Notación científica => N = M BE
Normalización IEEE754B=2 predeterminadoEl nº se representa como : s e m
s: campo del signo => 1bit: 0 si el nº es positivo, 1 si es negativoe: 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 negativoExponente: e = E+S = 5 + 28-1 –1 = 132)10= 11000100)2
Mantisa: nm=16-1-8= 7 => m=1110101N = 1 1100100 1110101 => s e m
Representación interna de la informaciónSituaciones especiales:
Cuando e=0, la mantisa se almacena desnormalizada y el valor de E = e – 2ne-1 +2El número N=0, se representa con todos los bits del exponente y la mantisa a 0Si 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 salidasTabla de verdad
Algebra de Boole
Herramienta matemática para el análisis y síntesis de sistemas digitalesPostulados:
Conjunto de elementos, ∃ B / x,y ∈B / x≠yLeyes 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 BooleDistributividad:
∀ 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 ∃ ∈B / x + =1; x . = 0
Ejemplos de Algebra de Boole:B={0, 1} con las operaciones AND, OR y NOTB = conjuntos, con la ∪ y la ∩
x x x
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 verdadExplicitamente: f(x,y,z) = x . (y+z) + y.zEjemplo: 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 10 0
00
1 1
O 0 10 0
11
1 1
-0 1
01
Funciones de conmutaciónElemento 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 f100011110
f20 0 0 1 0 0 00 0 1 0 0 0 10 1 0 0 0 0 10 1 1 0 1 0 01 0 0 0 0 0 01 0 1 0 0 0 01 1 0 0 0 1 01 1 1 0 0 0 1
321 xxx
321 xxx321 xxx
321 xxx
321 xxx
321 xxx321 xxx
321 xxx
f1 = + + +f2 = + + 321 xxx 321 xxx 321 xxx
321 xxx 321 xxx 321 xxx 321 xxx
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 f1x1 + x2 + x3 0
0011110
x1 + x2 + x1 + + x3
f20 0 0 0 1 1 00 0 1 1 1 1 10 1 0 1 1 1 10 1 1 1 0 1 01 0 0 1 1 1 01 0 1 1 1 1 01 1 0 1 1 0 01 1 1 1 1 1 1
3x2x
321 xxx ++
321 xxx ++
321 xxx ++
321 xxx ++
321 xxx ++
f1 = f2 = )xxx(*)xxx(*)xxx(*)xxx(*)xxx( 321321321321321 ++++++++++
)xxx(*)xxx(*)xxx(*)xxx( 321321321321 ++++++++