Los códigos binarios no sólo están en Matrix

códigos binariosBueno, ¿Qué tal andas por ahí? Yo hoy te traigo algo de electrónica digital. Sí, hay varias electrónicas. bueno, dos: la analógica y la digital.

Hace un tiempo te la lié y escribí un post sobre electrónica digital sin haber hablado de las bases antes. Gran error. Pero esto, al menos, tiene arreglo. Así que voy a intentar contarte de qué va esto de la electrónica digital.

Lo repito por si eres nuevo por estos lares y sales despavorido al leer tanto término raro. La electrónica digital es la que trabaja con ceros y unos. Con 5 Voltios y 0 Voltios, Es lo que llaman variables discretas. Lo contrario de discreto es continuo y así es como trabaja la electrónica analógica. En la analógica no es lo mismo 3.5 Voltios que 3.8 Voltios, en la digital… en la digital esto no tiene sentido, solamente hay dos estados.

La temperatura es una variable analógica y encender y apagar la luz es digital. Si te suena esto y no sabes de qué, seguramente hayas leído la guía para empezar con Arduino 😉 Pero bueno, no creas que un circuito o es analógico o digital, todo va entrelazado y mezclado sin problemas. O puede que el circuito sea solamente de un tipo.

El código binario y los bits

Ahora vamos a lo que nos interesa: los circuitos digitales. Para ello la primera parada está en el binario. Seguro que te acuerdas de la película Matrix, con sus unos y ceros. Pues aunque te parezca una locura lejana eso es lo que se utiliza en binario. Ya sé que te lo he dicho antes, pero no es como tú crees. Es más a saco.

Digamos que lo primero es saber cómo funciona el código binario. El código binario representa los números de toda la vida con unos y ceros. ¿Cómo? Dividiendo el número entre dos todas las veces necesarias hasta llegar al punto en que no se pueda dividir más (sin entrar en decimales y tal, claro está). Luego, lo que se hace es poner el último resultado que nos ha dado el cociente (normalmente será un uno) y detrás los residuos que han ido quedando que serán ceros o unos. Siempre desde la última división a la primera.

Igual es un poco jaleo así sin ejemplos ni nada… así que te dejo esta página que con la imagen esa lo vas a entender a primera vista. La cosa es que el número 18 tal y como lo conoces, en binario es el 10010. Pero bueno, en la época que estamos no hace falta que te pongas a hacer todo esto a mano. Google o la calculadora de tu ordenador pueden convertirte a binario perfectamente. Cero dramas.

Además, si multiplicas por 2 elevado a la posición en la que se encuentra el número (se empieza a numerar por 0 desde la derecha) cada uno de los unos y ceros y lo sumas el resultado será el número decimal.

Códigos binarios comunes

Bueno, pues ya tienes los bits, ya sabes cómo pasar números decimales. Esto te sirve para los números normales y hacer las tablas normales pero hay una serie de códigos o tablas de binarios que no funcionan así, que obvian este cálculo y tienen su propia forma de crear los números binarios.

Uno de ellos es el exceso 3. Se llama así porque tiene un exceso de 3 unidades, es decir, el 0 es el 3 y de ahí vamos sumando. Todos estos códigos binarios tienen 4 dígitos por lo que se puede llegar hasta 2 elevado a 4 posiciones. Vamos, del 0 al 15. Pero se utilizan para transcribir los números decimales que conocemos, por lo que al llegar a 9 en este caso el valor es 12 (9+3=12=1100 en binario) y ahí se acaba. No se continua con el 10 porque son dos dígitos, el 0 y el 1 😉

Código binario exceso 3

Pero bueno, otro muy utilizado es el código Gray (creo que no es ese de las 50 sombras… pero quién sabe…). La peculiaridad de este código es que entre un número y el siguiente solamente puede cambiar un bit (anda que despiste, aún no los había nombrado. Cada uno y cada cero son un bit). Es decir si el 1 en binario es 0001 y el 2 es 0010 estamos teniendo dos cambios. Por lo que el 2 en código Gray es 0011 y el 3 es 0010. Se intercambian para que al pasar de un número a otro solamente haya un cambio. Esto se utiliza en encoders ya que un cambio es fácil de detectar. Al hacer dos cambios pueden haber problemas si solo detecto uno y no el otro o no se hace el cambio al mismo tiempo (cosa normal en el mundo real). De manera que pasaría por dos estados en un tiempo muy breve (algún motor se jodería si dependiese de un encoder sin gray). Así solamente pasa por uno, el correcto.

código binario Gray

Códigos detectores de error

Cuando enviamos números o incluso cuando los copiamos pueden estar mal. Es por eso que se utilizan los códigos detectores de error. Es otro código binario como los de antes pero te permite ver si algún número no es correcto. Verlo, de ahí a detectar el fallo y corregirlo va un paso. Pero poco a poco.

Lo que más se utiliza en este caso es el bit de paridad. A los 4 bits (Un bit es uno de los unos y ceros que forman un número… vaya despiste llevo hoy escribiendo…) se le suma uno que es el que ayuda a saber si el número es correcto o no. ¿Cómo? Sumando el número de unos. Si es un número par el bit de paridad será un 0, si el número es impar el bit de paridad será un 1. Así, siempre tendremos un número par de unos y cuando nos llegue el número lo que haremos será revisar si el número de unos es par, si es impar el número no ha llegado correctamente.

Pero, ¿Qué pasa si hay un fallo en dos bits del mismo número? Que te comes el error con patatas, nunca sabrás que ha habido un fallo 🙁

Opt In Image

Taluegor!

Para solucionar los fallos puedes volver a pedir que te envíen el mensaje o utilizar los códigos correctores de error. Esto es otro mundo. Lo que hacen es detectar el error y saber qué bit es el que tiene el error. Para esto es famoso el código Hamming, pero la verdad es que esto es para un nivel más elevado ya que añades bits a los bits que ya tienes de manera que luego puedes saber dónde está el fallo. Aunque en el Hamming  pasa igual que antes, más de un fallo… y estás vendido.

Así que lo dejo aquí y no te mareo más. A ver si encuentras tan útil este post como el anterior de electrónica digital. ¿Me dejas un comentario y tal? 😉

[Total:2    Promedio:4.5/5]

Déjame un comentario que en el fondo soy buen chaval

  1. Responder

  2. Sera

    Responder

  3. Jesús

    Responder

  4. Responder

Deja un comentario