Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cada dígito decimal tiene una representación binaria codificada con 4 bits:
Decimal: 0 1 2 3 4 5 6 7 8 9
BCD: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
Los números decimales, se codifican en BCD con los bits que representan sus
dígitos. Por ejemplo, la codificación en BCD del número decimal 59237 es:
Decimal: 5 9 2 3 7
BCD: 0101 1001 0010 0011 0111
1110011101100101
Códigos de Hamming.
bits en la posición 2k, donde , son los bits de paridad y los bits restantes
son bits de información.
El valor de cada bit de paridad se escoge de modo que el total de unos en un número
específico de bits sea par, y estos grupos se escogen de tal forma que ningún bit de
información se cubra con la misma combinación de bits de paridad. Es lo anterior lo
que proporciona al código su capacidad de corrección.
El grupo de paridad del bit de paridad situado en la posición 2 son los bits de
información situados en las posiciones 7, 6, 3 que contienen unos en la
posición 2k o sea 2 cuando k = 1.
El grupo de paridad del bit de paridad situado en la posición 1 son los bits de
información situados en las posiciones 7, 5, 3 que contienen unos en la
posición 2k o sea 1 cuando K = 0.
De acuerdo con estos grupos de paridad, el valor del bit de paridad de la posición 1
tiene que elegirse de modo que el número de unos en las posiciones 7, 5, 3, 1 sea
par, mientras el bit de paridad en la posición 2 hace el número de unos par 7, 6, 3,
2 y el valor del bit de paridad en la posición cuatro hace el número de unos par en
las posiciones 7, 6, 5, 4.
Para probar que un cambio de un bit siempre genera una palabra que no pertenece
al código, hay que observar que un cambio de un bit en una palabra del código
afecta al menos un bit de paridad.
Por otra parte, un cambio de dos bits en una palabra del código no cambia el valor
del bit de paridad si ambos bits pertenecen al mismo grupo de paridad. Sin embargo
ello no es posible ya que para dos posiciones cualquiera de una palabra del código
siempre hay un grupo de paridad que no incluye ambas posiciones. En otras
palabras, como dos bits cualquiera deben estar en distintas posiciones, sus
números binarios deben diferir al menos en un bit, así que siempre hay al menos un
grupo de paridad con un solo bit cambiado, lo cuál da lugar a una palabra que no
pertenece al código con al menos un valor de paridad incorrecto.
CODIGO 2 ENTRE 5
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:
- 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, quedando los números de esta manera:
Decimal 2 entre 5
1 11000
2 10100
3 10010
6 10001
4 3+1 01010
5 3+2 00110
7 6+1 01001
8 6+2 00101
9 3+6 00011
Como ya hemos utilizado los dos bits posibles, no hace falta el bit de paridad, por lo
que permanece a 0
Decimal 2 entre 5
0 01100
0 = 00011
1 = 00101
2 = 00110
3 = 01001
4 = 01010
5 = 01100
6 = 10001
7 = 10010
8 = 10100
9 = 11000
CODIGO GRAY
Cuando un número binario pasa de: 0111 a 1000 (de 7 a 8 en decimal) o de 1111
a 0000 (de 16 a 0 en decimal) cambian todas las cifras.
Para el mismo caso pero en código Gray: 0100 a 1100 (de 7 a 8 en decimal) o
de 1000 a 0000 (de 16 a 0 en decimal) sólo ha cambiado una cifra.
La característica de pasar de un código al siguiente cambiando sólo un dígito
asegura menos posibilidades de error.
Códigos de paridad
Los códigos de paridad se utilizan para detectar errores en la transmisión de datos, y se obtienen
añadiendo a las combinaciones de los códigos un bit llamado de paridad. Puede ser de paridad par o
de paridad impar.
7 bits de byte con bit de paridad
datos par impar
0000000 00000000 00000001
1010001 10100011 10100010
1101001 11010010 11010011
1111111 11111111 11111110
Un bit de paridad es un dígito binario que indica si el número de bits con un valor
de 1 en un conjunto de bits es par o impar. Los bits de paridad conforman el método
de detección de errores más simple.
La paridad par es un caso especial del control de redundancia cíclica (CRC), donde
el bit de CRC se genera por el polinomio x+1.
Nótese que este método detecta los errores, pero no los corrige (salvo en el caso
de que la palabra transmitida sea de tamaño 1 bit (lo cual no es habitual)). Existen
dos variantes de este método, bit de paridad par y bit de paridad impar:
Los códigos numéricos sirven para representar números con fines de procesamiento
y almacenamiento. Los números de punto fijo y de punto flotante son ejemplos de
estos códigos.
Se utilizan para representar tanto enteros con signo como fracciones con signo. En
ambos casos se usan los mismos sistemas de magnitud y signos de complemento
a dos o de complemento a uno para representar los valores con signo. Los enteros
de punto fijo tienen un punto binario implícito a la derecha del bit menos significativo;
las fracciones de punto fijo tienen un punto binario implícito entre el bit de signo y el
bit más significativo.
Punto fijo. El punto decimal se fija en una determinada posición de la palabra de código. Los
dígitos binarios situados a la izquierda de esta posición representa a la parte entera , y los
situados a la derecha (incluyendo el de la posición fijada) a la parte decimal.
El problema de este tipo de representación surge cuando las cantidades a representar son muy
pequeñas o muy grandes, ya que las longitudes de palabra de código necesarias son
intratables. Para solucionar esta limitación surge una segunda forma de representar números
reales: el punto flotante.
me = 0.0000000000000000000000000009 gr
me = 9 ⋅ 10-28 gr.
msol = 2 ⋅ 10 33 gr.
e = exponente.
Como el ordenador trabaja con aritmética binaria, las propiedades de ésta hacen que b = 2
(multiplicar o dividir por 2 a una combinación binaria, tiene el mismo efecto que multiplicar
o dividir por 10 a un número en decimal). Como esta asignación es fija, se da por
sobreentendida, de forma que la base no será representada. Nos queda, por lo tanto, que una
cantidad en la forma vista, queda perfectamente caracterizada si se especifica el valor del
signo, de la mantisa y del exponente. En esto se basa la codificación en punto flotante, la
palabra de código se divide en tres partes, en cada uno de las cuales se representa, por
separado y de la forma adecuada, el signo, la mantisa y el exponente.
Ejemplo:
¡Atención! Acá esta lo complicado. Con esto de la convención, solo podemos saber si el número
es negativo o positivo, pero para saber qué número es, tendremos que seguir unos pasos
dependiendo del número con el que comienza.
Aclaración: Si con dicho número, estamos operando, se le tendrá que agregar tantos ceros
necesarios para igualar los dígitos de los números a operar.
Aclaración: Si con dicho número, estamos operando, se le tendrá que agregar tantos unos
necesarios para igualar los dígitos de los números a operar.
Overflow: desbordamiento
Dado que los números en un ordenador tienen una cantidad fija de bits, es posible que haya
overflow, es decir, que el resultado tenga demasiados bits. Esto también, claro, nos puede pasar
y nos pasa a nosotros mismos mientras operamos. Pero... ¿Cómo se cuando hay overflow?
Podemos identificarlo a causa de un resultado incorrecto ya que no tendrá el signo que debería
tener.
Si tengo una suma de un número positivo y un número negativo, el resultado puede dar negativo
o positivo, pero nunca va a haber overflow.
¡Ojo! Esto únicamente ocurre, cuando estamos trabajando en representación.
Rangos de números:
Los números binarios naturales de n bits pueden tener valores que van desde 0 hasta 2n – 1,
ya que los números usan un bit de signo. Un número de n bits sólo dedicará (n – 1) bits a
representar el tamaño.
Los números enteros pueden tener valores que van desde [–2n–1;+2n–1 – 1].