Sistemas de numeración, operaciones y códigos.

Anuncio
Tema 1:
Sistemas de numeración,
operaciones y códigos.
1
Para representar ideas, los seres humanos (al menos los occidentales)
utilizamos cadenas de símbolos alfanuméricos de un alfabeto definido.
En el mundo de los microcontroladores y microprocesadores la información consiste
en señales eléctricas cuyos valores se asocian a los conceptos lógicos Verdadero y
Falso, lo que da lugar a la utilización del sistema de numeración binario.
Verdadero -> 1
Álgebra de Boole
Falso -> 0
2
1
Álgebra de Boole
Funciones lógicas más usuales:
•Adición, unión o función O (OR): f(A,B) = A + B
•Producto, intersección o función Y (AND): f(A,B) = A · B
•Complementación, negación, inversión o función NO (NOT): f(A)=A=A’
•Función O exclusiva (XOR): f(A,B) = A ⊕B
3
Álgebra de Boole
Tablas de verdad: representan los valores adoptados por las funciones lógicas.
OR
NOT
A
B
A+B
0
0
0
XOR
A
A
0
1
1
A
B
A⊕B
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
AND
A
B
A·B
0
0
0
0
1
0
1
0
0
1
1
1
4
2
Álgebra de Boole
Propiedades del álgebra de Boole :
asociativa
A+(B+C) = (A+B)+C = A+B+C
A·(B·C) = ( A·B)·C = A·B·C
conmutativa
A+B = B+A
A·B = B· A
distributiva
A+B·C = (A+B) · (A+C)
A·(B +C) = A·B + A·C
Elemento
neutro
0+A=A
1+A=1
0· A=0
Identidad
A+A’=1
A· A’=0
Idempotencia
A+A=A
A· A=A
Involución
Absorción
De Morgan
1· A=A
( A’)’=A
A+A·B=A
A·( A+B)=A
A+A’·B=A+B
A·( A’+B)= A·B
(A+B)’=A’·B’
( A·B)’=A’+B’
5
Sistemas de codificación en los computadores
•Los microcontroladores manejan información binaria .
•Bit (binary digit): unidad mínima de información.
•La información consta de secuencias de bits (códigos) que representan:
•Instrucciones
•Datos
•Numéricos: 10000001(base 2)= 129(base 10)
•Alfanuméricos: 10000001 en ASCII es el carácter “ü”.
•Otros (gráficos, sonidos, etc).
6
3
Sistemas de codificación en los computadores
Las limitaciones de diseño de los microcontroladores hacen que sus componentes
estructurales tengan distintos anchos o tamaños de datos (tamaños privilegiados).
•Octeto, carácter o byte: cantidad en bits necesaria para representar un carácter
alfanumérico. Usualmente, 8 dígitos binarios o bits.
•Palabra (precisión básica de un micro): máxima cantidad de información accesible
y tratable en paralelo por las unidades aritmético-lógicas del computador y determina su
potencia de cálculo. Es el tamaño de referencia para un computador y se mide en
múltiplos de byte, existiendo tamaños de palabra de 8, 16, 32, 64, 128 bits, etc.
7
Sistemas de codificación en los computadores
Codificación: establece las reglas que definen la correspondencia entre cada
elemento de información y la secuencia de bits que constituye su código.
Tipos: directa, por campos, por secuencias de códigos.
Sistemas de codificación directa
Se establece una correspondencia biunívoca entre un conjunto de símbolos y un
conjunto de códigos binarios. Con n dígitos binarios se pueden representar 2n códigos
binarios distintos.
Ejemplos:
•Con n=1 se pueden representar d=21 =2 combinaciones: {0,1}
•Con n=2 se pueden representar d=22 =4 combinaciones: {00,01,10,11}
•Con n=8 se pueden representar d=28 =256 combinaciones.
•Para representar d símbolos serán precisos n d ígitos binarios, cumpliéndose que d =2 n , y por
tanto n = log2 d
8
4
Sistemas de codificación en los computadores
Sistemas de codificación por campos
Se dota de significado específico a parte de la información codificada.
Ejemplo: representación numérica mediante módulo y signo: el primer bit indica
el signo, y los restantes el módulo.
00000001base(M/S) = 1
base(10)
10000001base(M/S)= -1
base(10)
9
Sistemas de codificación en los computadores
Sistemas de codificación por secuencias de códigos
Se dota de significado específico a parte de la información codificada, y
diferentes símbolos se representan mediante códigos de diferentes longitudes.
Ejemplo: secuencias de escape en lenguaje C
• Las letras del alfabeto se representan mediante un solo carácter.
• Fin de línea: \n; retorno de carro: \r; carácter \: \\ .
10
5
Sistemas de representación numérica
Un sistema de representación numérica es un sistema de lenguaje consistente en:
•Un conjunto ordenado de símbolos (dígitos o cifras).
•un conjunto de reglas bien definidas para las operaciones aritméticas de suma, resta,
multiplicación, división, etc.
Los números en un sistema de numeración consisten en una secuencia (vector)de
dígitos que pueden tener parte entera y parte fraccionaria, ambas separadas por
una coma (o un punto)
(N)(base r) = [(parte entera) , (parte fraccionaria)] (base r)
La base (r) de un sistema de numeración especifica el número de dígitos o
cardinal de dicho conjunto ordenado. Las bases más utilizadas son:
•base 2: binaria = {0,1}
•base 10: decimal = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
•base 16: hexadecimal = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}
•base 8: octal = {0, 1, 2, 3, 4, 5, 6, 7}
11
Sistemas de representación numérica
Equivalencias entre los 17 primeros números de los sistemas
decimal, binario, octal y hexadecimal:
12
6
Sistemas de representación numérica
El sistema más usual de representació n numérica es el sistema posicional donde
cada dígito del vector numérico tiene un valor distinto dependiendo de su posición
concreta en el vector.
A sí un número en base r se representa de la siguiente manera:
N(base r) = [a p- 1 a p- 2 ... a 1 a 0 , a -1 a -2 ... a -q ] (base r)
•a i son los dígitos,
•p es el número de dígitos enteros,
•a p-1 es el dígito más significativo,
•a -q es el dígito menos significativo.
13
Sistemas de representación numérica
N=
p−1
∑ a ·r
i =− q
i
i
N(base r) = [a p- 1 a p- 2 ... a 1 a 0 , a -1 a -2 ... a -q ] (base r)
Ejemplo:
1283(base 10) = [a 3=1 a 2=2 a 1=8 a 0= 3 a -i=0] (base 10) =
1 x 103+ 2 x 102+ 8 x 101+ 3 x 100= 1000+200+80+3
14
7
Sistemas de representación numérica: conversiones entre bases
Conversión de base r a base s utilizando la aritmética de la base s:
Esta conversión se usa normalmente para convertir de cualquier base a base 10.
Dado un número N en base r, la conversión consiste en evaluar directamente dicha
expresi ón usando la aritmética de la base s tanto para la parte entera como para la fraccionaria.
Ejemplos:
• convertir el número binario 1101,01 a base 10:
1101,01(base 2) = [a 3=1 a2=1 a1=0 a0= 1 a-1=0 a -2=1]
(base 2)
=
1 x 2 3+ 1 x 2 2+0 x 2 1+ 1 x 2 0 + 0 x 2 -1 +1 x 2 -2 =
1 x 8 + 1 x 4 +0 x 2 +1 x 1 +0 x 0.5 +1 x 0.25 = 13,25
(base 10)
•convertir el número 14 en base 16 a base 10:
14 (base 16) = [a 1=1 a0= 4 ] (base 16) =
1 x 16 1+ 4 x 16 0= 1 x 16+ 4 x 1= 20
(base 10)
15
Sistemas de representación numérica: conversiones entre bases
Conversión de base r a base s utilizando la aritmética de la base r: Esta
conversión se usa normalmente para pasar de base 10 a cualquier otra base.
Proceso de conversión:
• la parte entera se convierte mediante divisiones sucesivas entre s(base r)
• la parte fraccionaria se convierte mediante productos sucesivos por s(base r)
16
8
Sistemas de representación numérica: conversiones entre bases
Ejemplo:
• convertir el número decimal 19 a binario.
Ejemplo:
• convertir el número decimal 127 a hexadecimal .
17
Sistemas de representación numérica: conversiones entre bases
Ejemplo:
Ejemplo:
• convertir el número decimal 0.1285 a base 4.
• convertir el número decimal 0.3 a binario.
18
9
Sistemas de representación numérica: conversiones entre bases
Los procesos de conversión entre bases se simplifican cuando las bases de
partida y de llegada son una potencia de la otra.
Casos más frecuentes:
•Conversión entre binario y octal
•Conversión entre binario y hexadecimal
Los sistemas octal y hexadecimal son muy utilizados porque permiten
representar grandes cadenas de dígitos binarios de forma abreviada.
19
Sistemas de representación numérica: conversiones entre bases
Conversión de binario a octal: agrupar dígitos binarios de 3 en 3 a
ambos lados de la coma y sustituir por su equivalente octal.
Conversión de binario a hexadecimal: agrupar dígitos binarios de 4 en
4 a ambos lados de la coma y sustituir por su equivalente hexadecimal.
20
10
Sistemas de representación numérica: conversiones entre bases
Conversión de octal a binario: cada dígito octal se sustituye su
equivalente binario de tres bits.
Conversión de hexadecimal a binario: cada dígito hexadecimal se
sustituye por su equivalente binario de 4 bits.
21
Aritmética en base 2
22
11
Aritmética en base 2
23
Aritmética en base 2
24
12
C1 y C2 de los números binarios
El complemento a 1 (C1) y el complemento a 2 (C2) de un número binario son
importantes porque permiten la representación de números negativos.
Obtención del C1 de un numero binario:
intercambiando 1’s por 0’s y viceversa
Obtención del C2 de un numero binario:
C1 + 1
25
Codificación de números en BCD
Codificaciones decimales:
Son las encargadas de representar los números del sistema decimal,
representando cada dígito decimal mediante una cadena de d ígitos binarios.
Para representar 10 dígitos distintos (0, 1, ..., 9) se necesita un número mínimo
de 4 bits. Con 4 bits se pueden representar 16 d ígitos distintos, luego se pueden
asignar distintas combinaciones de bits a los 10 dígitos decimales
Codificaci ón en BCD:
Es la codificación decimal más sencilla y representa a los diez dígitos decimales
asignándoles el c ódigo binario de su representación binaria pura con 4 bits. Con
esa representació n un número decimal se evalúa mediante la expresión:
b3 ·23 + b2 ·2 2 + b1 ·21 + b0 ·20 = b3 ·8 + b2 ·4 + b1 ·2 + b0 ·1
Por esta razón al código BCD se le conoce también como código 8-4 -2-1.
26
13
Codificación de números en BCD
Ejemplo:
En BCD, el número decimal de dos dígitos 56 se escribe (5) y (6),
es decir 0101 0110, mientras que en binario puro se escribe como
111000.
27
Codificación de números en Exceso-3 (XS-3)
Es una codificación derivada de la codificación BCD sin más que
sumar 3 (0011) a la representación BCD de cada dígito decimal.
28
14
Código Gray
29
Código Johnson
30
15
Codificaciones alfanuméricas
Son las codificaciones encargadas de representar los caracteres alfabéticos,
numéricos, signos de puntuación y signos de control mediante cadenas de dígitos
binarios.
Al menos deben representar 26 letras del alfabeto y 10 dígitos, es decir
36caracteres, luego necesitan un mínimo de 6 bits. En realidad, se necesitan más
caracteres, de forma que las codificaciones más utilizadas emplean 7 y 8 bits:
ASCII
EBCDIC (Extended BCD Interchange Code).
Unicode (16 bits)
31
Código ASCII
ASCII:
•El Código estándar americano para el intercambio de información (American Standard
Code for Information Interchange) es el código alfanumérico más extendido.
•El código ASCII original utilizaba 7 bits para representar 128 caracteres (0 hasta 7F en
hexadecimal (0111 1111)) donde los primeros 32 caracteres son de control (n o gráficos o
invisibles) y los restantes son gráficos (visibles).
•En la actualidad ASCII es un código de 8 bits, también conocido como ASCII extendido.
•Los códigos ASCII extendidos presentan variaciones nacionales. El código más usado en nuestra
zona geográfica es el Latin -1.
32
16
Código ASCII
33
Bibliografía
FUNDAMENTOS DE SISTEMAS DIGITALES
T.L. Floyd
Prentice Hall
34
17
Descargar