Download Introducción a Códigos

Document related concepts

Código binario wikipedia , lookup

Decimal codificado en binario wikipedia , lookup

Ordenador decimal wikipedia , lookup

Sistema octal wikipedia , lookup

Bit wikipedia , lookup

Transcript
Códigos
Introducción a Códigos
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 1
Códigos
Agenda
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 2
•
•
•
•
•
•
•
•
•
•
•
•
Códigos
Códigos numéricos posicionales
Códigos numéricos no posicionales
Construcción de cantidades
Sistema decimal
Sistema binario
Códigos binarios
Códigos alfanuméricos
Conversión decimal a binario
Conversión binario a decimal
Conversión hexadecimal a decimal
Conversión de hexadecimal a binario
Códigos
CODIGOS
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 3
• “En la Teoría de la información, es la forma que
toma la información que se intercambia entre la
Fuente (el emisor) y el Destino (el receptor) de un
lazo informático. Implica la comprensión o
decodificación del paquete de información que se
transfiere.
• El código fundamental en el que se basan los
ordenadores es el código binario, el más simple
pues solo consta de dos elementos (0) y (1) que
combinados de distintas maneras como impulsos
eléctricos ponen las bases para la informática.”
• Tomado de
http://es.wikipedia.org/wiki/C%C3%B3digo el 10
de Febrero del 2007
Códigos
Introducción a códigos
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 4
• En un ambiente de sistemas
digitales se denomina codificación a
la asignación de un significado a
una configuración de bits.
• Los códigos más utilizados para la
generación de información son:
– Los códigos numéricos
– Los códigos alfanuméricos
Códigos
Códigos
• Códigos numéricos
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 5
– Son los que se utilizan para representar
cantidades, contraseñas, y toda aquella
información que requiera de dígitos de algún
sistema numérico.
• Códigos alfanuméricos
– Son aquellos que se utilizan para representar
el alfabeto o cualquier otro carácter,
normalmente se utilizan en la creación de
bases de datos de especies e información de
las personas.
Sistemas numéricos
Códigos
• Los sistemas numéricos son esenciales en
la representación de información.
• Tienen algunas características muy
importantes:
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 6
– Tienen un conjunto definido de elementos
– Cuentan con operadores para tratar los
elementos
– Una serie de reglas que permiten normar el uso
de los operadores con los elementos
Sistemas numéricos
Códigos
SISTEMA
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
ELEMENTOS
Decimal
0,1,2,3,4,5,
6,7,8,9
Hexadecimal
0,1,2,3,4,5,6,
7,8,9,A,B,C,D
,E,F
Octal
0,1,2,3,4,5,
6,7
Binario
0,1
OPERADORES
REGLAS
+ - X ÷
Asociativa
Conmutativa
Existencia de elemento
neutro, etc.
+ - X ÷
Asociativa
Conmutativa
Existencia de elemento
neutro, etc.
+ - X ÷
Asociativa
Conmutativa
Existencia de elemento
neutro, etc.
∩∪˜
Asociativa
Conmutativa
Existencia de elemento
neutro, etc.
Etc.
Página 7
 significa, la operación complemento
Clasificación de los sistemas numéricos
• Los sistemas numéricos se pueden
clasificar en:
– Posiciónales (justa posiciónales)
– No posiciónales
Códigos
• Posiciónales
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 8
– El valor de los elementos que componen el
sistema depende del valor que se les ha
asignado, y de la posición que ocupan en el
número.
• No Posiciónales
– El valor de los elementos que componen el
sistema es fijo, y no depende de la posición
que ocupa el símbolo dentro del número.
Códigos
Valor por la posición
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 9
• El número de elementos permitidos
en un sistema de numeración
posicional se conoce como base del
sistema de numeración.
• Si un sistema de numeración
posicional tiene base b significa que
disponemos de b elementos
diferentes para escribir los números,
y b unidades forman una unidad de
orden superior.
Construcción de cantidades
• Forma general de construir números en un sistema de
numeración posicional.
Códigos
– Definiciones básicas:
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 10
•
•
•
•
•
•
•
•
•
N: Sistema de numeración
b: base del sistema de numeración. Número de símbolos
permitidos en el sistema.
d: un símbolo cualquiera de los permitidos en el sistema de
numeración
n: número de dígitos de la parte entera.
,: coma fraccionaria. Símbolo utilizado para separar la parte
entera de un número de su parte fraccionaria.
k: número de dígitos de la parte decimal.
• La fórmula general para construir un número (cualquier
número) N en un sistema de numeración posicional de base
b es:
Sistema decimal
•
Códigos
•
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 11
•
•
•
En el sistema decimal los símbolos válidos para construir números son
{0...9} (0 hasta 9, ambos incluidos), por tanto la base (número de
símbolos válidos en el sistema) es 10.
El teorema fundamental de la numeración aplicado al sistema decimal,
será:
Los dígitos a la izquierda de la coma fraccionaria representados por dn ... d2 d1 d0 ,
toman el valor correspondiente a las potencias positivas de la base (10 en el sistema
decimal), en función de la posición que ocupan en el número, y representan
respectivamente al dígito de las n-unidades (10n), centenas (102=100), decenas
(10¹=10) y unidades (100=1).
Los dígitos a la derecha de la coma fraccionaria d-1, d-2, d-3 ... d-n representan
respectivamente al dígito de las décimas (10-1=0,1), centésimas (10-2=0,01),
milésimas (10-3=0,001) y n-ésimas (10-n) .
Por ejemplo, el número 1492,36 en decimal, puede expresarse como:
Ejemplo de un valor decimal
Códigos
• Supongamos que deseamos conocer el
valor decimal de 345, esto es
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 12
102
101
100
3
4
5
345 = 3 * 10
2
+ 4 * 10
1
+ 5 * 10
0
Códigos
Sistema binario
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 13
•
El teorema fundamental de la numeración aplicado al sistema binario es:
•
En el sistema binario la base es 2, lo que quiere decir que solo
disponemos de 2 símbolos {0,1} para construir todos los números
binarios.
Por tanto, una vez que contamos (sumamos) dos hemos agotado los
símbolos disponibles para esa columna, y debemos poner a cero la
columna y usar otra columna a la izquierda.
Así, si contamos en binario, tras el número 0(2 viene el 1(2, pero si
contamos una unidad más debemos usar otra columna, resultando 10(2
Sigamos contando 0(2,1(2,10(2,11(2.
Al añadir una unidad a la columna de las unidades, esa columna ha
agotado los símbolos disponibles, y debemos formar una unidad de
segundo orden, pero como ya hay una, también agotaremos los símbolos
disponibles para esa columna, y debemos formar una unidad de tercer
orden o 100(2. Así, en el sistema binario 11(2 + 1(2 + 100(2
•
•
•
•
Ejemplo de un valor binario a decimal
Códigos
• Supongamos que deseamos conocer el
valor decimal del valor binario 11101,
esto es
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 14
24
23
22
21
20
1
1
1
0
1
29 = 1* 2 4 + 1* 23 + 1* 2 2 + 0 * 21 + 1* 20
Códigos
Definiciones
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 15
• BIT: Un digito binario, es la menor unidad
de información en base 2 y puede ser 0 o 1.
• BYTE: Un grupo de ocho bits, y también se
le llama caracter.
• NIBBLE: Un nibble es la mitad de un byte o
cuatro bits.
• WORD: Es un grupo de 16 bits, o dos bytes
• DWORD: Es un grupo de 32 bits, o dos
words o 4 bytes.
Definiciones
• Kilobyte (KB) – Un kilobyte es 1,024 (o
aproximadamente 1,000) bytes.
Códigos
• Kilobit (Kb) – Un kilobit es 1,024 (o
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 16
aproximadamente 1,000) bits.
• Megabyte (MB) – Un megabyte son 1,048,576
bytes (or aproximadamente 1,000,000 bytes).
• Note que la B mayúscula indica bytes y la b
minúscula indica bits.
Códigos
Sistemas de numeración no posicionales
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 17
• El sistema de los números romanos no es
estrictamente posicional.
• Por esto, es muy complejo diseñar
algoritmos de uso general (por ejemplo,
para suma, restar, multiplicar, dividir).
• Como ejemplo, en el número romano
XCIX (99 decimal) los numerales X (10
decimal) del inicio y del fin de la cifra
equivalen siempre al mismo valor, sin
importar su posición dentro de la cifra.
Códigos binarios
Códigos
• Existen diferentes códigos binarios:
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 18
– Binario natural
– BCD
– Exceso tres
– Gray
– Johnson
– Biquinario
– 2 entre 5
– Hamming
Código BCD (Binary Coded Decimal)
• Representa los dígitos decimales por
secuencias de bits en el sistema binario.
Códigos
• BCD es la abreviatura de Binary Coded
Decimal es decir, decimal codificado en
binario.
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 19
¾ Cada secuencia de 4 bits es
una palabra del código.
¾ Cada dígito decimal se le
asocia una secuencia de 4 bits.
Código 7, puede interpretarse según:
0·23+1·22+1·21+1·20 =
0·8 + 1·4 + 1·2 + 1·1 = 7
BCD y Decimal
• Ejemplo 1.
Códigos
– Representar en BCD el valor 12 decimal.
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 20
• Para representar el número decimal 12 se
requieren 8 bits, o dos palabras de código
BCD.
• 12 = 0001 0010
• ¿Cuántas palabras se requieren para
representar 789 ?
Códigos
Código Hexadecimal
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 21
• El código hexadecimal contiene los
elementos del sistema decimal y las
letras A, B, C, D, E, F.
• La base del sistema es 16.
• ¿Cual será la representación F0B1 en
decimal?
• Código F0B1, puede interpretarse
según:
• F·163+0·162+B·161+1·160 =
• 15·163+0·162+11·161+1·160 = 61617
• ¿Para que se utilizan los números
hexadecimales.
• Representan a los números binarios de
forma corta, y es muy simple de
transformar de HEX a BIN y vise versa.
Decimal Binario Simbolo
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
Código Gray
Códigos
• Los códigos Grey tienen un mínimo
de cambios entre su antecesor y el
sucesor.
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 22
– De una representación numérica a la
siguiente solo cambia un bit.
– Las principales aplicaciones se
encuentran en donde hay cambios
únicos en la entrada.
• Tabla de posición de una molino
• Posición de un eje rotacional
Códigos
Código Gray
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 23
Binario
Grey
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000
Binario Codificado en Decimal
Códigos
• Se necesitan de cuatro bits para
representar cada dígito decimal.
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 24
– Cada grupo de cuatro bits, no se utilizan
6 posibles valores
– Hay muchos códigos posibles, el BCD
natural es el más común.
– BCD no es tan eficiente como el binario.
• BCD es fácil de convertir a decimal
(realmente es decimal con diferentes
símbolos).
Códigos Numéricos
Ejemplo 2 Transmisión de símbolos BCD
Códigos
A través de un par de cables, puede enviarse una secuencia
de cifras decimales codificadas en binario. Si enviamos
primero las unidades, luego las decenas y después las
centenas; y si se envía primero el bit menos significativo, se
tendrá que la siguiente forma de onda representa el número
923:
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 25
Transmisión serie de un símbolo BCD.
Códigos Numéricos
Códigos
Si se dispone de cuatro líneas, más una
referencia, se puede enviar una cifra decimal
paralelo. Las líneas se han identificado de
acuerdo al peso.
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 26
Transmisión paralela símbolo BCD.
Códigos Numéricos
Códigos
• Paridad
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 27
– En aplicaciones digitales de movimiento de
información, es importante detectar cualquier
tipo de error en la información recibida.
– Cuando la probabilidad de error no es muy
alta, se ha probado ser efectivo un sistema
denominado chequeo de paridad.
– Esta técnica emplea un bit extra, llamado de
paridad, cuyo valor se selecciona dependiendo
de la cantidad de unos que hay en los datos.
Esto es si la cantidad de unos es una cantidad
par el bit se pone en 1 y si es impar se pone en
cero.
Códigos
Códigos Numéricos
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 28
Decim al Paridad
Im par
0
1000
1
0001
2
0010
3
1011
4
0100
5
1101
6
1110
7
0111
Paridad
Par
0000
1001
1010
0011
1100
0101
0110
1111
Códigos Numéricos
Códigos
Se envían 4 bits en paralelo más uno de paridad.
Tx
Rx
Decim al Paridad
Im par
0
1000
1
0001
2
0010
3
1011
4
0100
5
1101
6
1110
7
0111
Paridad
Par
0000
1001
1010
0011
1100
0101
0110
1111
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 29
¿Cómo se podría construir un generador y
detector de paridad ?
Códigos Numéricos
Códigos
Solución:
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 30
P: Bit de paridad
DP: Bit detector de paridad
Códigos
Código biquinario
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 31
• El código biquinario es un sistema de
numeración usado en ábacos y en algunos de los
primeros computadores, como el Colossus.
• El término biquinario se refiere a que el código
tiene una parte de dos estados (bi) y otra de cinco
estados (quin).
• Existen varias representaciones de un decimal
codificado en biquinario, ya que:
– el componente de dos estados se puede representar
tanto con uno como con dos bits
– y el componente de cinco estados, tanto con tres como
con cinco bits
Código 2 entre 5
Códigos
• El código 2 entre 5, a veces confundido con el biquinario,
• Es utilizado para la detección de errores en transmisiones
digitales.
• Existen varios métodos para la codificación mediante el sistema 2
entre 5.
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 32
– Se trata de un código ponderado donde los pesos para los 4 primeros
bits son 1,2,3,6.
– El bit más significativo se utiliza para completar la paridad par.
– Tiene dos características a tener en cuenta:
• No existe codificación para el 0; hay que “inventarse” una
• Sólo puede haber dos bits a 1 entre los cinco bits (de ahí su nombre)
– Si partimos de los pesos directos vemos que podemos codificar los
números 1, 2, 3 y 6 utilizando un solo bit.
– En estos números se activa el bit de paridad a 1 para cumplir la
paridad par.
Códigos Alfanumérico
• “CODIGO ALFANUMÉRICO
Códigos
– Con un código de un bit podemos representar 2¹=2 combinaciones.
Para representar los diez dígitos (0-9) y las 26 letras minúsculas
necesitamos como mínimo 6 bits (25=32, 26=64 combinaciones). Si
además se quieren representar las letras mayúsculas y otros símbolos
de utilidad necesitaremos un mayor número de bits. En general con el
término de carácter o código alfanumérico se incluyen:
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 33
•
•
•
•
Las letras: a-z y A-Z.
Los números: del 0 al 9
Los símbolos: @ ! # $ + - * / = % ( ) [ ] etc....
Los caracteres de control: <CR>, <LF>, etc.
– La información que el ordenador debe procesar está formada por
letras, números y símbolos especiales.
– Los ordenadores trabajan con voltajes fijos que se representan con los
números 0 y 1 que forman la base de un sistema binario. Con la
presencia o ausencia de tensión eléctrica no sólo se pueden
representar números sino los estados de una variable lógica Con un
conjunto de variables lógicas se puede definir cualquier sistema
lógico.”
• Tomado de
http://es.wikipedia.org/wiki/C%C3%B3digos_alfanum%C3%A9ricos el
10 de Febrero del 2007
Códigos Alfanuméricos
Códigos
• Códigos Alfanuméricos
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 34
– La mayor parte de los dispositivos periféricos empleados
en sistemas de computación para comunicar al hombre
con la máquina, permiten representar las letras
minúsculas y mayúsculas, dígitos decimales, signos de
puntuación y caracteres especiales.
– Uno de los más empleados es el código ASCII. Este es
un código de 7 bits, más uno de paridad. Permite
representar 128 símbolos. Su nombre es una
abreviación de "American Standard Code for
Information Interchange".
– En computadores personales se está empleando 8 bits
para representar caracteres, lo cual permite denotar 256
símbolos. Esto ha sido especialmente útil en
aplicaciones de procesamiento de textos en diversos
idiomas, pues pueden incluirse letras con diferentes
tipos de acentos.
Códigos Alfanuméricos
Códigos
• Son los códigos binarios utilizados para
representar el alfabeto y los caracteres
numéricos.
• Los dos más comunes son:
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 35
– ASCII, 7 bits, con 128 símbolos
– EBCDIC, 8 bit, 256 símbolos
• Los problemas surgen cuando se
comparan los valores y los símbolos.
– Si se compara de ‘A’ a ‘a’ en el sistema ASCII
ocurren algunos errores respecto al sistema
EBCDIC.
Códigos
Código ASCII
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 36
TOMADO DE:
http://images.google.co.cr/imgres?imgurl=http://www.ecowin.org/aulas/resources/tables/asciitable.jpg&imgrefurl=http://www.ecowin.org/ascii.htm&h=742&w=1050&sz=105&
hl=es&start=1&tbnid=llAxgig9laYZSM:&tbnh=106&tbnw=150&prev=/images%3Fq%3Dascii%2Btable%26svnum%3D10%26hl%3Des%26sa%3DG
EL 10 DE FEBRERO DEL 2007
Conversión de decimal a binario
Método 1
Códigos
Convertir el número 192 decimal a su equivalente binario
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 37
192/2
=
96
con un residuo de
96/2
=
48
con un residuo de
0
48/2
=
24
con un residuo de
0
24/2
=
12
con un residuo de
0
12/2
=
6
con un residuo de
0
6/2
=
3
con un residuo de
0
3/2
=
1
con un residuo de
1
1/2
=
0
con un residuo de
1
0
Escriba todos los residuos, en forma reversa, y obtiene el número
binario 11000000.
Conversión de decimal a binario Método 2
Convierta el número decimal 192 a su equivalente
binario. Primero encuentre el mayor número que es potencia
de 2 que puede substraerse del número original. Repita el
proceso hasta que no se pueda sustraer nada.
Códigos
192-128 =
64-64 =
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 38
64
0
128 utilizado
64 utilizado
32 utilizado
16 utilizado
8 utilizado
4 utilizado
2 utilizado
1 utilizado
1
1
0
0
0
0
0
0
Escriba los unos y los ceros de arriba hacia abajo, y se obtiene el
número 11000000.
Códigos
Conversión de Binario a Decimal
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 39
Convierta el número decimal 213 a binario. Primero
encuentre el mayor número potencia de 2 que puede
sustraerse al número original. Repita el proceso hasta que
no quede nada a que sustraer.
213-128 =
85
128 utilizado 1
85-64 =
21
64 utilizado 1
*(32 no se puede sustraer de 21)
32 utilizado 0
21-16 =
5
16 utilizado 1
*(8 no se puede sustraer de 5)
8 utilizado 0
5-4 =
1
4 utilizado 1
*(2 no se puede sustraer de 1)
1-1 =
0
2 utilizado 0
1 utilizado 1
Escriba los unos y ceros de arriba hacia abajo, y se obtiene el
número binario 11010101.
Conversión de Binario a Decimal Método 2
Códigos
De la derecha a la izquierda, escriba los valores en
potencias de dos sobre cada uno de los dígitos
binarios. Luego sume los valores donde hay unos.
27
128
1
26
64
0
25
32
1
24
16
1
23
8
0
22
4
1
21
2
0
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 40
128 + 32 + 16 + 4 + 1 = 181
20
1
1
Conversión de hexadecimal a decimal
Base 16
Códigos
16^4 16^3 16^216^116^0 Decimal
65.536 4.096 256 16
1
1
2
A
298
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 41
•Cada posición del dígito está representado por
una potencia de 16
•Dado el número hexadecimal 12A
•1 X 256 = 256
•2 X 16 = 32
•A X 1
= +10
298
(A = 10 en hex)
Conversión de hexadecimal a binario
Para convertir un número hexadecimal a binario, cada dígito
hexadecimal representa 4 dígitos binarios.
Dado el número hexadecimal A 3
A es el número decimal 10
Códigos
10 en binario es 1 0 1 0
EL - 3307
Diseño
Lógico
Ing. José Alberto
Díaz García
Página 42
8 4 2 1 (las posiciones binarias son - 4 bits)
1 0 1 0
3 es el valor de 3
3 en binario es 0 0 1 1
8 4 2 1 (las posiciones binarias son – 4 bits)
0 0 1 1
hex
A 3 = 1 0 1 0 0 0 1 1 en binario