jueves, 16 de septiembre de 2010

Respuestas a problemas

Asignar el bit de paridad par apropiado a los siguientes grupos de códigos.

a)1011 = 11011
b)11110000 = 111100000
c)10101011 = 110101011
d)11100010 = 111000100
e)11100000 = 111100000

1.- El numero de refaccion ASR32-5 convertido a binario es:
01000001 01010011 01010010 00110011 00110010 00110101

2.-Para una direccion de memoria de 21 bits

a)Debido a que 3 bits se convierten en 1 digito octal, se necesitan 21/3=7 digitos octales.

b)0000000 - 7777777

c)Con 7 digitos octales el numero total de direcciones es 8^7=2097152

3.-
a)Se necesitan 10 digitos hexadecimales para representar una direccion de memoria de 40 bits.

b) 000000000 - FFFFFFFFFF

c) Con 10 digitos hexadecimales el numero total de direcciones es 16^10=109951162775

4.-
a)En una calculadora disenada para manejar 12 digitos decimales se requieren 48 bits; ya que solamente se unas 4 bits por cada digito decimal.

b)Para el numero 89234 se almacenan 20 bits en una calculadora. Estos bits son: 1000 1001 0010 0011 0100


5.-Convierte los siguientes números decimales a código BCD y luego agrégueles un bit de paridad impar:

a) 774
b) 338
c) 448
d) 1234
e) 9955


a) 774 0111 0111 0100
0111 0111 0100 0

b) 338 0011 0011 1000
0011 0011 1000 0

c) 448 0100 0100 1000
0100 0100 1000 0

d) 1234 0001 0010 0011 0100
0001 0010 0011 0100 0

e) 9955 1001 1001 0101 0101
1001 1001 0101 0101 1





6.- En cierto circuito digital, los números digitales de 000 a 999 se representan en código BCD. También se incluye un bit de paridad impar al final de cada grupo de código. Examine cada grupo de código se muestra a continuación y suponga que cada uno apenas ha sido transferido de una ubicación a otra. Algunos de los grupos contienen errores. Suponga que no han ocurrido más de dos errores en cada grupo. Determine cuál de los grupos de código tiene un solo error y cuál definitivamente tiene un error doble. (Sugerencia: recuerde que este es un código BCD).

a) 1001 0101 1000 0 9, 5, 9

b) 0100 0111 0110 0 4, 7, 6 (error de paridad impar)

c) 0111 1100 0001 1 7, 12, 1 (error de representación 1001)

d) 1000 0110 0010 1 9, 6, 2

e) 1000 1000 1001 1 8, 8, 9

f) 1001 0001 0011 1 9, 1, 3 (error de paridad impar)


7.-Los siguientes bytes (mostrados en hex) representan el nombre de una persona en la forma en la que lo almacenaría la memoria de una computadora. Cada byte es un código ASCII de relleno. Determine el nombre de la persona.
42 45 4E 20 53 4D 49 54 48

BEN SMITH

8.- Represente la afirmación "X= 25/Y" en código ASCII (excluya las comillas) Agregue el bit de paridad impar.

1 0101 1000 0011 1101 0011 0010 0011 0101 001011 1 1 0101 1001

9.-Convierta estos valores hexadecimal a decimal.
a) 92 = 146
b) 1A6 = 422
c) 37FD = 14333
d) ABCD =43981
e) 000f = 15
f) 55 = 85
g) 2c0 = 704
h) 7ff = 2047

10.-Convierta estos valores decimales a hexadecimal
a) 7510 = 4B16
b) 31410 = 13A16
c) 204810 = 80016
d) 14110 = 8D16
e) 38910 = 18516

11.-Convierta los valores hexadecimal del problema 9 a binario
a) 92 = 10010010
b) 1A6 = 110100110
c) 37FD = 11011111111101
d) ABCD = 1010101111001101
e) 000F = 1111
f) 55 = 1010101
g) 2C0 = 1011000000
h) 7FF = 11111111111

12.-Suponga que el receptor recibio los siguientes datos del transmisor del problema 11

01001000
11000101
11001100
11001000
11001100

Que errores puede determinar el receptor en estos datos?
Que todos los datos fueron transmitidos erroneamente

13.-Explique en que consiste el código Hamming de corrección de error.
Explique en qué consiste el código Hamming de corrección de error.

En informática, el código de Hamming es un código detector y corrector de errores que lleva el nombre de su inventor, Richard Hamming. En los datos codificados en Hamming se pueden detectar errores en un bit y corregirlos, sin embargo no se distingue entre errores de dos bits y de un bit (para lo que se usa Hamming extendido). Esto representa una mejora respecto a los códigos con bit de paridad, que pueden detectar errores en sólo un bit, pero no pueden corregirlo.


14.-Explique la diferencia entre Método de paridad y código Hamming.

La paridad consiste en añadir un bit, denominado bit de paridad, que indique si el número de los bits de valor 1 en los datos precedentes es par o impar. Si un solo bit cambiara por error en la transmisión, el mensaje cambiará de paridad y el error se puede detectar (nótese que el bit donde se produzca el error puede ser el mismo bit de paridad). La convención más común es que un valor de paridad de 1 indica que hay un número impar de unos en los datos, y un valor de paridad de 0 indica que hay un número par de unos en los datos.

La comprobación de paridad no es muy robusta, dado que si cambia de forma uniforme más de un solo bit, el bit de paridad será válido y el error no será detectado. Por otro lado, la paridad, aunque puede detectar que hay error, no indica en qué bit se cometió. Los datos se deben desechar por entero y volverse a transmitir. En un medio ruidoso, una transmisión correcta podría tardar mucho tiempo o incluso, en el peor de los casos, no darse nunca. El chequeo de paridad, aunque no es muy bueno, usa un único bit, por lo que produce muy poca sobrecarga, y además permite la corrección de ese bit si es conocida su posición.
En cambio, el código de Hamming agrega tres bits adicionales de comprobación por cada cuatro
bits de datos del mensaje.

El algoritmo de Hamming puede corregir cualquier error de un solo bit, pero cuando hay errores en más de un bit, la palabra transmitida se confunde con otra con error en un sólo bit, siendo corregida, pero de forma incorrecta, es decir que la palabra que se corrige es otra distinta a la original, y el mensaje final será incorrecto sin saberlo. Para poder detectar (aunque sin corregirlos) errores de dos bits, se debe añadir un bit más, y el código se llama Hamming extendido. El procedimiento para esto se explica al final




15.-De un ejemplo de código Hamming.

Ejemplo
Supóngase que se transmite una palabra de código y se recibe una palabra que no pertenece al código y que es 1110101 . Cuál fue la palabra correcta transmitida?
Posiciones de los bits.

7 6 5 4 3 2 1

1 1 1 0 1 0 1


En la tabla anterior se puede observar lo siguiente:
Cuando se cuenta el número de unos que hay en los bits, 7, 6, 5, 4 de la palabra del código recibida, se encuentra que este número es impar. De forma similar, se encuentra que los bits 7, 6, 3, 2 contienen un número0 impar de unos. Por tanto hay un error en los bits de paridad 4 y 2. Como la suma de los números en esas posiciones es 6, se sabe que el error se ha producido en el bit de posición 6 y por tanto la palabra transmitida fue 1010101.

domingo, 12 de septiembre de 2010

Codigos



Muy buena pagina para poder conocer los diferentes tipos de codigos (bcd,gray,exceso 3,codigo alfanumericos) , con ejemplos de conversiones.

http://www.cmelectronics.8m.com/codigos_binarios.html

Binario-Octal-Hexadecimal

Conversión de binario a decimal

El sistema de numeración binario u un sistema de posición donde cada dígito binario (bit) tiene un valor basado en su posición relativa al LSB. Cualquier número binario puede convenirse a su equivalente decimal, simplemente sumando en el número binario las diversas posiciones que contenga un 1. Por ejemplo:

1 1 1 0 1 12 de binario a decimal

1 x 25 + 1 x 24 + 1 x 23 + 0 x 22 + 1 x 2 + 1 = 6910

Conversión de decimal a binario

Existen dos maneras de convenir un número decimal entero a su representación equivalente en el sistema binario. El primer método es inverso al proceso descrito anteriormente. El número decimal se expresa simplemente como una suma de potencias de 2 y luego los unos y los ceros se escriben en las posiciones adecuadas de los bits. Por ejemplo:

45 = 32 + 8 + 4 + l = 25 + 0 + 23 +2 2 + 0 + 20

entonces es igual a 1 0 1 1 0 12

Pasar a decimal el binario 101011102

1 0 1 0 1 1 1 0

Entonces el número se forma tomando los residuos pero en forma inversa, es decir el primer digito será el último residuo y así sucesivamente. El número quedaría como sigue:

1 0 0 0 0 0 1 02

3. Operaciones Binarias

En lo que sigue se adopta como convención la lógica positiva, lo que implica:

verdadero = 1 = activo, ------, falso = 0 = inactivo

Hay cinco operaciones binarias básicas: AND, OR, NOT, XOR y ADD. La resta, multiplicación y división se derivan de estas cinco anteriores. Cualquiera sea la longitud de la palabra o palabras objeto de la operación, siempre se hace de a un bit por vez de derecha a izquierda (tal como si fuera una suma o resta con números decimales). Esto permite una definición de cada operación que es independiente de la longitud del o de los operando(s). La operación NOT es la única que se realiza sobre un sólo operando (es unaria), y las otras cuatro sobre dos operandos.

La operación AND (Y) tiene resultado 1 si sus dos operandos son ambos 1

La operación OR (O) tiene resultado 1 si cualquiera de sus operandos es 1

La operación XOR tiene resultado 1 si los operandos son distintos (uno en 0 y el otro en 1)

La operación NOT (NO) tiene resultado 1 si el operando es 0 y viceversa

La operación ADD (SUMA) se define igual que con los números decimales

AND
OR
XOR
NOT
SUMA

0 * 0 = 0
0 + 0 = 0
0 X 0 = 0
NOT 1 = 0
0 + 0 = 0

0 * 1 = 0
0 + 1 = 1
0 X 1 = 1
NOT 0 = 1
0 + 1 = 1

1 * 0 = 0
1 + 0 = 1
1 X 0 = 1
---
1 + 0 = 1

1 * 1 = 1
1 + 1 = 1
1 X 1 = 0
---
1 + 1 = 10

División

Reglas de la división binaria: 0/0 no permitida, 1/0 no permitida,0/1=0, 1/1=1

Es lo que hacemos en la suma decimal 5+5=10 (nos llevamos “1″ para la operación del dígito siguiente). Este llevarse “1″ es vastamente usado entre los procesadores digitales y tiene un nombre especial: carry (lo verá abreviado como CY, C o CF-por carry flag), lo que en castellano se traduce como “acarreo” (que suena muy mal, asi que le seguiremos llamando carry). Estas operaciones también se llaman “booleanas” ya que se basan en el álgebra de Boole (invito al lector a rememorar cuando en la escuela secundaria se preguntaba, igual que yo, si el álgebra de Boole le serviría alguna vez para algo).

En un ordenador el sistema de numeración es binario -en base 2, utilizando el 0 y el 1- hecho propiciado por ser precisamente dos los estados estables en los dispositivos digitales que componen una computadora.

Para sumar números, tanto en base 2 como hexadecimal, se sigue el mismo proceso que en base 10:

Podemos observar que la suma se desarrolla de la forma tradicional; es decir:

+ 0011 1100b sumamos normalmente, salvo en el caso de


1 + 1 = 102 , en cuyo caso tenemos un acarreo

1110 0110b

de 1 (lo que nos llevamos).

Complemento a dos.

En general, se define como valor negativo de un número el que necesitamos sumarlo para obtener 00h, por ejemplo:

FFh Como en un byte solo tenemos dos nibbles, es

+ 01h decir, dos dígitos hexadecimales, el resultado es


0 (observar cómo el 1 más significativo subrayado

100h es ignorado). Luego FFh=−1. Normalmente, el bit 7

se considera como de signo y, si está activo (a 1)

el número es negativo.

Por esta razón, el número 80h, cuyo complemento a dos es él mismo, se considera negativo (−128) y el número 00h, positivo. En general, para hallar el complemento a dos de un número cualquiera basta con calcular primero su complemento a uno, que consiste en cambiar los unos por ceros y los ceros por unos en su notación binaria; a continuación se le suma una unidad para calcular el complemento a dos. Con una calculadora, la operación es más sencilla: el complemento a dos de un número A de n bits es 2n-A.

Otro factor a considerar es cuando se pasa de operar con un número de cierto tamaño (ej., 8 bits) a otro mayor (pongamos de 16 bits). Si el número es positivo, la parte que se añade por la izquierda son bits a 0. Sin embargo, si era negativo (bit más significativo activo) la parte que se añade por la izquierda son bits a 1. Este fenómeno, en cuya demostración matemática no entraremos, se puede resumir en que el bit más significativo se copia en todos los añadidos: es lo que se denomina la extensión del signo: los dos siguientes números son realmente el mismo número (el −310): 11012 (4 bits) y 111111012 (8 bits).

Sistema de numeración octal

El sistema de numeración octal es muy importante en el trabajo que se realiza en una computadora digital. Este tiene una base de ocho, lo cual significa que tiene ocho posibles dígitos: 0, 1, 2, 3, 4, 5, 6 y 7. Así, cada dígito de un número octal puede tener cualquier valor del 0 al 7. Conversi6n de octal a decimal.- Por tanto, un número octal puede convenirse fácilmente a su equivalente decimal multiplicando cada dígito octal por su valor posicional. Por ejemplo:

2748 = 2 x 82 + 7 x 81 + 4 x 80

2848 = 2 x 64 + 7 x 8 + 4 x 1

2848 = 18810

Conversión de decimal a octal

Un entero decimal se puede convertir a octal con el mismo método dc división repetida que se usó en la conversión de decimal a binario, pero con un factor de división dc 8 en lugar de 2. Por ejemplo:

con residuo 4

con residuo 4

con residuo 2

Al final resulta que:

16410 = 2448

Conversión de octal a binario

La ventaja principal del sistema de numeración octal es la facilidad con que se puede realizar la conversión entre números binarios y octales. La conversión de octal a binario se lleva a cabo conviniendo cada dígito octal en su equivalente binario dc 3 bits.

Por medio de estas conversiones, cualquier número octal se conviene a binario, convirtiéndolo dc manera individual. Por ejemplo, podemos convertir 516, a binario de la siguiente manera:

5 1 6

001 110

entonces:

5168 = 1010011102

Conversion de binario a octal

La conversión de enteros binarios a octales es simplemente la operación inversa del proceso anterior. Los bits del número binario se agrupan en conjuntos de tres comenzando por el LSB. Luego, cada grupo se convierte a su equivalente octal. Por ejemplo:

111 001 101 110

7 1 5 6

entonces:

1110011011102 = 71568

Sistema De Numeración Hexadecimal

Conversión de hexadecimal a decimal.- Un número hexadecimal se puede convenir a su equivalente decimal utilizando el hecho de que cada posición de los dígitos hexadecimales tiene un valor que es una potencia de 16. El LSD tiene un valor de l60 = 1; el siguiente dígito en secuencia tiene un valor de 161 = 16; el siguiente tiene un valor de 162 = 256 y así sucesivamente. Por ejemplo:

81216 = 8 x 162 + 1 x 161 + 2 x 160

81216 = 2048 + 16 + 2

81216 = 206610

Conversión de decimal a hexadecimal

Recuerde que efectuamos la conversión de decimal a binario por medio de la división repetida entre 2 y de decimal a octal por medio de la división repetida entre 8. De igual manera, la conversión de decimal a hexadecimal se puede efectuar por medio de la división repetida entre 16. Por ejemplo:

con residuo 7

con residuo 010

con residuo 1

entonces:

42310 = 1A716

Conversión de hexadecimal a binario

Al igual que el sistema de numeración octal, el sistema hexadecimal se usa principalmente como método ‘taquigráfico” en la representación de números binarios. Es una tarea relativamente simple la de convertir un número hexadecimal en binario. Cada dígito hexadecimal se convierte en su equivalente binario de 4 bits. Por ejemplo:

6 D 2 3

1101 0010 0011

entonces:

6D2316 = 1101101001000112

Conversión de binario a hexadecimal

Esta conversión es exactamente la operación inversa del proceso anterior. El número binario se agrupa en conjuntos de cuatro bits y cada grupo se convierte a su dígito hexadecimal equivalente. Cuando es necesario se añaden ceros para completar un grupo de cuatro bits.

11101001102 = 0011 1010 0110

3 A 6

11101001102 = 3A616



Enlace

Paso del sistema binario al decimal



Debido a que en electrónica digital sólo se pueden dar dos niveles o estados es conveniente la aplicación de un sistema binario de numeración o sistema de numeración en base dos. Este sistema posee solamente dos dígitos (0 y 1).

En un sistema BINARIO sólo pueden haber dos valores para cada dígito: ya sea un 0=DESACTIVADO ó un 1=ACTIVADO. Para representar el número 22 en notación BINARIA lo haríamos como 00010110, notación que se explica según la siguiente tabla:

Posición del BIT: 7 6 5 4 3 2 1 0
Valor Binario: 0 0 0 1 0 1 1 0
Valor Decimal: 128 64 32 16 8 4 2 1
Valores a Sumar: 0 0 0 16 0 4 2 0
Valor Resultante: 16 + 4 + 2=22

Todos los valores que corresponden a posiciones a las que se asigna el valor binario de 0 (cero) no se cuentan, ya que 0 representa DESACTIVADO.

De la misma manera, los números que corresponden a las posiciones con valor binario 1 se sumarán, (16 + 4 + 2=22) ya que 1 representa ACTIVADO.

Valores Decimales y sus equivalentes Binarios:
POSICIÓN BIT VALOR DECIMAL VALOR BINARIO
1 1 1
2 2 10
3 3 11
4 4 100
5 5 101
6 6 110
7 7 111
8 8 1000
9 9 1001
10 10 1010
11 16 10000
12 32 100000
13 64 1000000
14 100 1100100
15 256 100000000
16 512 1000000000
17 1000 1111110100
18 1024 10000000000



Enlace