Contactos

Valores de código binario. Código binario. Número binario en complemento a dos con signo

08. 06.2018

Blog de Dmitry Vassiyarov.

Código binario: ¿dónde y cómo se utiliza?

Hoy me alegro especialmente de conocerlos, queridos lectores, porque me siento como un maestro que, desde la primera lección, comienza a familiarizar a la clase con las letras y los números. Y como vivimos en un mundo de tecnología digital, te diré qué es el código binario, cuál es su base.

Comencemos con la terminología y descubramos qué significa binario. Para aclarar, volvamos a nuestro cálculo habitual, que se llama "decimal". Es decir, utilizamos 10 dígitos, lo que permite operar cómodamente con varios números y mantener los registros adecuados.

Siguiendo esta lógica, el sistema binario prevé el uso de sólo dos caracteres. En nuestro caso, estos son simplemente “0” (cero) y “1” uno. Y aquí quiero advertirles que hipotéticamente podría haber otros símbolos en su lugar, pero son precisamente estos valores, que indican la ausencia (0, vacío) y la presencia de una señal (1 o “stick”), los que ayudarán comprenderemos mejor la estructura del código binario.

¿Por qué se necesita el código binario?

Antes de la llegada de las computadoras, se utilizaban varios sistemas automáticos, cuyo principio de funcionamiento se basaba en la recepción de una señal. Se activa el sensor, se cierra el circuito y se enciende un determinado dispositivo. No hay corriente en el circuito de señal, no hay operación. Fueron los dispositivos electrónicos los que permitieron lograr avances en el procesamiento de la información representada por la presencia o ausencia de voltaje en un circuito.

Su mayor complicación llevó a la aparición de los primeros procesadores, que también hicieron su trabajo, procesando una señal formada por pulsos que se alternan de cierta manera. No profundizaremos en los detalles del programa ahora, pero para nosotros es importante lo siguiente: resultó que los dispositivos electrónicos pueden distinguir una secuencia determinada de señales entrantes. Por supuesto, es posible describir la combinación condicional de esta manera: “hay una señal”; "sin señal"; “hay señal”; "Hay una señal". Incluso puedes simplificar la notación: “hay”; "No"; "Hay"; "Hay".

Pero es mucho más fácil denotar la presencia de una señal con la unidad “1” y su ausencia con el cero “0”. Entonces podemos usar un código binario simple y conciso: 1011.

Por supuesto, la tecnología de los procesadores ha avanzado mucho y ahora los chips pueden percibir no sólo una secuencia de señales, sino también programas completos escritos con comandos específicos que consisten en caracteres individuales.

Pero para registrarlos se utiliza el mismo código binario, formado por ceros y unos, correspondiente a la presencia o ausencia de una señal. Si existe o no, no importa. Para un chip, cualquiera de estas opciones es un único dato, que se denomina “bit” (el bit es la unidad de medida oficial).

Convencionalmente, un símbolo se puede codificar como una secuencia de varios caracteres. Dos señales (o su ausencia) pueden describir sólo cuatro opciones: 00; 01;10; 11. Este método de codificación se llama de dos bits. Pero también puede ser:

  • Los cuatro bits (como en el ejemplo del párrafo anterior 1011) le permiten escribir 2^4 = 16 combinaciones de símbolos;
  • Ocho bits (por ejemplo: 0101 0011; 0111 0001). Hubo un tiempo en que era de gran interés para la programación porque cubría 2 ^ 8 = 256 valores. Esto hizo posible describir todos los dígitos decimales, el alfabeto latino y los caracteres especiales;
  • Dieciséis bits (1100 1001 0110 1010) y superiores. Pero los registros de tal longitud ya sirven para tareas modernas y más complejas. Los procesadores modernos utilizan arquitectura de 32 y 64 bits;

Francamente, no existe una versión oficial única, pero resultó que fue la combinación de ocho caracteres la que se convirtió en la medida estándar de información almacenada llamada "byte". Esto podría aplicarse incluso a una letra escrita en código binario de 8 bits. Entonces, queridos amigos, recuerden (si alguien no lo sabe):

8 bits = 1 byte.

Así es como es. Aunque un carácter escrito con un valor de 2 o 32 bits también puede denominarse nominalmente byte. Por cierto, gracias al código binario podemos estimar el volumen de archivos medido en bytes y la velocidad de transmisión de información y de Internet (bits por segundo).

Codificación binaria en acción

Para estandarizar la grabación de información para computadoras, se han desarrollado varios sistemas de codificación, uno de los cuales se ha generalizado, ASCII, basado en grabación de 8 bits. Los valores que contiene se distribuyen de forma especial:

  • los primeros 31 caracteres son caracteres de control (de 00000000 a 00011111). Sirve para comandos de servicio, salida a impresora o pantalla, señales de sonido, formato de texto;
  • los siguientes del 32 al 127 (00100000 – 01111111) Alfabeto latino y símbolos auxiliares y signos de puntuación;
  • el resto, hasta el 255 (10000000 – 11111111) – alternativa, parte de la tabla para tareas especiales y visualización de alfabetos nacionales;

La decodificación de los valores que contiene se muestra en la tabla.

Si cree que "0" y "1" están ubicados en un orden caótico, está profundamente equivocado. Usando cualquier número como ejemplo, te mostraré un patrón y te enseñaré cómo leer números escritos en código binario. Pero para ello aceptaremos algunas convenciones:

  • Leeremos un byte de 8 caracteres de derecha a izquierda;
  • Si en los números ordinarios usamos los dígitos de unidades, decenas, centenas, aquí (leyendo en orden inverso) para cada bit se representan varias potencias de "dos": 256-124-64-32-16-8- 4-2 -1;
  • Ahora miramos el código binario del número, por ejemplo 00011011. Donde hay una señal "1" en la posición correspondiente, tomamos los valores de este bit y los sumamos de la forma habitual. En consecuencia: 0+0+0+32+16+0+2+1 = 51. Puede verificar la exactitud de este método consultando la tabla de códigos.

Ahora, mis amigos curiosos, no sólo sabéis qué es el código binario, sino que también sabéis cómo convertir la información cifrada por él.

Lenguaje comprensible para la tecnología moderna.

Por supuesto, el algoritmo para leer código binario mediante dispositivos procesadores es mucho más complicado. Pero puedes usarlo para escribir lo que quieras:

  • Información de texto con opciones de formato;
  • Números y cualquier operación con ellos;
  • Imágenes gráficas y de vídeo;
  • Sonidos, incluidos aquellos que están más allá de nuestro alcance auditivo;

Además, debido a la simplicidad de la “presentación”, son posibles varias formas de registrar información binaria:

  • Cambiando el campo magnético en ;
  • Las ventajas de la codificación binaria se complementan con posibilidades casi ilimitadas de transmitir información a cualquier distancia. Este es el método de comunicación utilizado con naves espaciales y satélites artificiales.

    Entonces, hoy en día el sistema numérico binario es un lenguaje que entienden la mayoría de los dispositivos electrónicos que utilizamos. Y lo más interesante es que por ahora no se prevé ninguna otra alternativa.

    Creo que la información que he presentado será suficiente para empezar. Y luego, si surge tal necesidad, todos podrán profundizar en un estudio independiente de este tema.

    Me despediré y tras un breve descanso os prepararé un nuevo artículo en mi blog sobre algún tema interesante.

    Es mejor que me lo cuentes tú mismo ;)

    Nos vemos pronto.

    Si está interesado en aprender a leer números binarios, es importante comprender cómo funcionan los números binarios. El sistema binario se conoce como sistema de numeración "base 2", lo que significa que hay dos números posibles para cada dígito; uno o cero. Los números grandes se escriben añadiendo unos o ceros binarios adicionales.



    Comprender los números binarios


    Saber leer archivos binarios no es fundamental para usar computadoras. Pero es bueno entender el concepto para comprender mejor cómo las computadoras almacenan números en la memoria. También le permite comprender términos como 16 bits, 32 bits, 64 bits y medidas de memoria como bytes (8 bits).



    "Leer" código binario generalmente significa convertir el número binario al número de base 10 (decimal) con el que la gente está familiarizada. Esta conversión es bastante fácil de hacer mentalmente una vez que comprendes cómo funciona un lenguaje binario.

    Cada dígito de un número binario tiene un significado específico a menos que el dígito sea cero. Una vez que haya determinado todos estos valores, simplemente súmelos para obtener el valor decimal de 10 dígitos del número binario. Para ver cómo funciona esto, tome el número binario 11001010.


    1. La mejor manera de leer un número binario es comenzar en el dígito más a la derecha y trabajar hacia la izquierda. La fuerza de esta primera ubicación es cero, es decir, el valor de este dígito, si no es cero, es igual a dos potencias de cero o uno. En este caso, como el dígito es cero, el valor para esa ubicación será cero.



    2. Luego pasa al siguiente dígito. Si es uno, entonces calcula dos elevado a uno. Anota este valor. En este ejemplo, el valor es una potencia de dos igual a dos.



    3. Continúe repitiendo este proceso hasta llegar al número más a la izquierda.



    4. Para finalizar, lo único que tienes que hacer es sumar todos estos números para obtener el valor decimal total del número binario: 128 + 64 + 0 + 0 + 8 + 0 + 2 + 0 = 202 .


    La nota: Otra forma de ver todo este proceso en forma de ecuación es esta: 1 x 2 7 + 1 x 2 6 + 0 x 2 5 + 0 x 2 4 + 1 x 2 3 + 0 x 2 2 + 1 x 2 1 + 0 x 2 0 = 20.


    Números binarios con firma.


    El método anterior funciona para números binarios básicos sin signo. Sin embargo, las computadoras necesitan una forma de representar números negativos también usando código binario.


    Por esta razón, las computadoras usan números binarios con signo. En este tipo de sistema, el dígito más a la izquierda se conoce como bit de signo y los dígitos restantes se conocen como bits de amplitud.


    Leer un número binario con signo es casi lo mismo que uno sin signo, con una pequeña diferencia.


    1. Siga el mismo procedimiento anterior para un número binario sin signo, pero deténgase una vez que llegue al bit más a la izquierda.



    2. Para determinar el signo, mire el bit más a la izquierda. Si es uno, entonces el número es negativo. Si es cero, entonces el número es positivo.



    3. Ahora haga los mismos cálculos que antes, pero aplique el signo apropiado al número indicado por el bit más a la izquierda: 64 + 0 + 0 + 8 + 0 + 2 + 0 = -74 .


    4. El método binario con signo permite a las computadoras representar números positivos o negativos. Sin embargo, consume el bit inicial, lo que significa que los números grandes requieren un poco más de memoria que los números binarios sin signo.

    Esta lección cubrirá el tema “Codificación de información. Codificación binaria. Unidades de medida de la información." Durante el mismo, los usuarios podrán comprender la codificación de información, cómo las computadoras perciben la información, las unidades de medida y la codificación binaria.

    Sujeto:Información a nuestro alrededor

    Lección: Codificación de información. Codificación binaria. Unidades de información

    Esta lección cubrirá las siguientes preguntas:

    1. Codificar como cambiar la forma de presentación de la información.

    2. ¿Cómo reconoce una computadora la información?

    3. ¿Cómo medir la información?

    4. Unidades de medida de la información.

    En el mundo de los códigos.

    ¿Por qué la gente codifica información?

    1. Ocultarlo de los demás (criptografía espejo de Leonardo da Vinci, cifrado militar).

    2. Escriba la información de forma breve (taquigrafía, abreviatura, señales de tráfico).

    3. Para facilitar el procesamiento y la transmisión (código Morse, traducción a señales eléctricas - códigos de máquina).

    Codificación es la representación de información mediante algún código.

    Código Es un sistema de símbolos para presentar información.

    Métodos de codificación de información.

    1. Gráfico (ver Fig. 1) (mediante dibujos y letreros).

    Arroz. 1. Sistema de banderas de señales (Fuente)

    2. Numérico (usando números).

    Por ejemplo: 11001111 11100101.

    3. Simbólico (usando símbolos alfabéticos).

    Por ejemplo: NKMBM CHGYOU.

    Descodificación es una acción para restaurar la forma original de presentación de la información. Para decodificar, necesita conocer el código y las reglas de codificación.

    El medio de codificación y decodificación es la tabla de correspondencia de códigos. Por ejemplo, la correspondencia en varios sistemas numéricos es 24 - XXIV, la correspondencia del alfabeto con cualquier símbolo (Fig. 2).


    Arroz. 2. Ejemplo de cifrado (Fuente)

    Ejemplos de codificación de información.

    Un ejemplo de codificación de información es el código Morse (ver Figura 3).

    Arroz. 3. código morse ()

    El código Morse utiliza sólo 2 símbolos: un punto y un guión (sonido corto y largo).

    Otro ejemplo de codificación de información es el alfabeto de banderas (ver Fig. 4).

    Arroz. 4. Alfabeto de bandera ()

    Otro ejemplo es el alfabeto de banderas (ver Fig. 5).

    Arroz. 5. ABC de banderas ()

    Un ejemplo bien conocido de codificación es el alfabeto musical (ver Fig. 6).

    Arroz. 6. Alfabeto musical ()

    Considere el siguiente problema:

    Usando la tabla alfabética de banderas (ver Fig. 7), es necesario resolver el siguiente problema:

    Arroz. 7

    El compañero mayor Lom le pasa el examen al Capitán Vrungel. Ayúdelo a leer el siguiente texto (ver Figura 8):

    Hay principalmente dos señales a nuestro alrededor, por ejemplo:

    Semáforo: rojo - verde;

    Pregunta: sí - no;

    Lámpara: encendida - apagada;

    Es posible, no es posible;

    Bueno malo;

    La verdad es una mentira;

    De ida y vuelta;

    Sí No;

    Todas estas son señales que indican la cantidad de información en 1 bit.

    1 poco - esta es la cantidad de información que nos permite elegir una opción entre dos posibles.

    Computadora Es una máquina eléctrica que funciona con circuitos electrónicos. Para que la computadora reconozca y comprenda la información de entrada, debe traducirse al lenguaje de computadora (máquina).

    El algoritmo destinado al ejecutante debe estar escrito, es decir, codificado, en un lenguaje comprensible para la computadora.

    Estas son señales eléctricas: la corriente pasa o la corriente no pasa.

    Lenguaje binario de máquina: una secuencia de "0" y "1". Cada número binario puede tener el valor 0 o 1.

    Cada dígito de un código binario de máquina contiene una cantidad de información igual a 1 bit.

    El número binario que representa la unidad más pequeña de información se llama b él . Un bit puede tomar el valor 0 o 1. La presencia de una señal magnética o electrónica en una computadora significa 1, la ausencia de 0.

    Una cadena de 8 bits se llama b ÉL . La computadora procesa esta cadena como un carácter separado (número, letra).

    Veamos un ejemplo. La palabra ALICIA consta de 5 letras, cada una de las cuales está representada en lenguaje informático por un byte (ver Fig. 10). Por lo tanto, Alice se puede medir en 5 bytes.

    Arroz. 10. Código binario (fuente)

    Además de los bits y los bytes, existen otras unidades de información.

    Bibliografía

    1. Bosova L.L. Informática y TIC: Libro de texto para 5º de primaria. - M.: BINOM. Laboratorio de Conocimiento, 2012.

    2. Bosova L.L. Ciencias de la Computación: Cuaderno de trabajo para 5to grado. - M.: BINOM. Laboratorio de Conocimiento, 2010.

    3. Bosova L.L., Bosova A.Yu. Lecciones de informática en los grados 5-6: Manual metodológico. - M.: BINOM. Laboratorio de Conocimiento, 2010.

    2. Festival "Lección Abierta" ().

    Tarea

    1. §1.6, 1.7 (Bosova L.L. Informática y TIC: Libro de texto para el grado 5).

    2. Página 28, tareas 1, 4; Pág. 30, tareas 1, 4, 5, 6 (Bosova L.L. Informática y TIC: Libro de texto para el grado 5).

    El conjunto de caracteres con los que se escribe el texto se llama alfabeto.

    El número de caracteres del alfabeto es su fuerza.

    Fórmula para determinar la cantidad de información: norte=2b,

    donde N es la potencia del alfabeto (número de caracteres),

    b – número de bits (peso de información del símbolo).

    El alfabeto con una capacidad de 256 caracteres puede contener casi todos los caracteres necesarios. Este alfabeto se llama suficiente.

    Porque 256 = 2 8, entonces el peso de 1 carácter es de 8 bits.

    La unidad de medida de 8 bits recibió el nombre 1 byte:

    1 byte = 8 bits.

    El código binario de cada carácter del texto de la computadora ocupa 1 byte de memoria.

    ¿Cómo se representa la información textual en la memoria de la computadora?

    La conveniencia de la codificación de caracteres byte a byte es obvia porque un byte es la parte más pequeña de la memoria direccionable y, por lo tanto, el procesador puede acceder a cada carácter por separado cuando procesa texto. Por otro lado, 256 caracteres es un número suficiente para representar una amplia variedad de información simbólica.

    Ahora surge la pregunta: qué código binario de ocho bits asignar a cada carácter.

    Está claro que se trata de una cuestión condicional, se pueden idear muchos métodos de codificación.

    Todos los caracteres del alfabeto informático están numerados del 0 al 255. Cada número corresponde a un código binario de ocho bits del 00000000 al 11111111. Este código es simplemente el número de serie del carácter en el sistema numérico binario.

    Una tabla en la que a todos los caracteres del alfabeto informático se les asignan números de serie se denomina tabla de codificación.

    Los diferentes tipos de computadoras utilizan diferentes tablas de codificación.

    La mesa se ha convertido en el estándar internacional para PC. ASCII(leer preguntar) (Código estándar americano para el intercambio de información).

    La tabla de códigos ASCII se divide en dos partes.

    Sólo la primera mitad de la tabla es la norma internacional, es decir. símbolos con números de 0 (00000000), hasta 127 (01111111).

    Estructura de la tabla de codificación ASCII

    Número de serie

    Código

    Símbolo

    0 - 31

    00000000 - 00011111

    Los símbolos con números del 0 al 31 suelen denominarse símbolos de control.
    Su función es controlar el proceso de visualización de texto en pantalla o impresión, emisión de una señal sonora, marcado de texto, etc.

    32 - 127

    00100000 - 01111111

    Parte estándar de la mesa (inglés). Esto incluye letras minúsculas y mayúsculas del alfabeto latino, números decimales, signos de puntuación, todo tipo de paréntesis, símbolos comerciales y otros.
    El carácter 32 es un espacio, es decir posición vacía en el texto.
    Todos los demás se reflejan en ciertos signos.

    128 - 255

    10000000 - 11111111

    Parte alternativa de la mesa (ruso).
    La segunda mitad de la tabla de códigos ASCII, llamada página de códigos (128 códigos, desde 10000000 hasta 11111111), puede tener diferentes opciones, cada opción tiene su propio número.
    La página de códigos se utiliza principalmente para dar cabida a alfabetos nacionales distintos del latín. En las codificaciones nacionales rusas, los caracteres del alfabeto ruso se colocan en esta parte de la tabla.

    Primera mitad de la tabla de códigos ASCII


    Tenga en cuenta que en la tabla de codificación, las letras (mayúsculas y minúsculas) están ordenadas alfabéticamente y los números en orden ascendente. Esta observancia del orden lexicográfico en la disposición de los símbolos se denomina principio de codificación secuencial del alfabeto.

    Para las letras del alfabeto ruso, también se observa el principio de codificación secuencial.

    Segunda mitad de la tabla de códigos ASCII


    Desafortunadamente, actualmente existen cinco codificaciones cirílicas diferentes (KOI8-R, Windows, MS-DOS, Macintosh e ISO). Debido a esto, a menudo surgen problemas al transferir texto en ruso de una computadora a otra, de un sistema de software a otro.

    Cronológicamente, uno de los primeros estándares para codificar letras rusas en computadoras fue KOI8 ("Código de intercambio de información, 8 bits"). Esta codificación se utilizó allá por los años 70 en ordenadores de la serie ES, y desde mediados de los 80 empezó a utilizarse en las primeras versiones rusificadas del sistema operativo UNIX.

    Desde principios de los años 90, época de dominio del sistema operativo MS DOS, la codificación CP866 permanece ("CP" significa "página de códigos", "página de códigos").

    Las computadoras Apple que ejecutan el sistema operativo Mac OS usan su propia codificación Mac.

    Además, la Organización Internacional de Normalización (ISO) ha aprobado otra codificación denominada ISO 8859-5 como estándar para el idioma ruso.

    La codificación más común utilizada actualmente es Microsoft Windows, abreviada CP1251.

    Desde finales de los años 90, el problema de la estandarización de la codificación de caracteres se ha resuelto mediante la introducción de un nuevo estándar internacional llamado Unicódigo. Esta es una codificación de 16 bits, es decir. Asigna 2 bytes de memoria para cada carácter. Por supuesto, esto aumenta 2 veces la cantidad de memoria ocupada. Pero dicha tabla de códigos permite la inclusión de hasta 65536 caracteres. La especificación completa del estándar Unicode incluye todos los alfabetos del mundo existentes, extintos y creados artificialmente, así como muchos símbolos matemáticos, musicales, químicos y otros.

    Intentemos usar una tabla ASCII para imaginar cómo se verán las palabras en la memoria de la computadora.

    Representación interna de palabras en la memoria de la computadora.

    A veces sucede que un texto que consta de letras del alfabeto ruso recibido de otra computadora no se puede leer; se ve una especie de "abracadabra" en la pantalla del monitor. Esto sucede porque las computadoras usan diferentes codificaciones de caracteres para el idioma ruso.

    Profundidad de bits del código binario, Conversión de información de forma continua a discreta, Universalidad de la codificación binaria, Códigos uniformes y no uniformes, Ciencias de la Computación Bosova de séptimo grado, Ciencias de la Computación de séptimo grado

    1.5.1. Convertir información de forma continua a discreta
    Para resolver sus problemas, una persona a menudo tiene que transformar la información existente de una forma de representación a otra. Por ejemplo, al leer en voz alta, la información se convierte de una forma discreta (texto) a una forma continua (sonido). Por el contrario, durante un dictado en una lección de ruso, la información se transforma de una forma continua (la voz del profesor) a una discreta (las notas de los estudiantes).
    La información presentada en forma discreta es mucho más fácil de transmitir, almacenar o procesar automáticamente. Por lo tanto, en tecnología informática se presta mucha atención a los métodos para convertir información de forma continua a discreta.
    La discretización de la información es el proceso de convertir información de una forma de representación continua a una discreta.
    Veamos la esencia del proceso de muestreo de información usando un ejemplo.
    Las estaciones meteorológicas cuentan con registradores para el registro continuo de la presión atmosférica. El resultado de su trabajo son los barogramas: curvas que muestran cómo ha cambiado la presión durante largos períodos de tiempo. Una de estas curvas, trazada por el dispositivo durante siete horas de observación, se muestra en la Fig. 1.9.

    Con base en la información recibida, se puede construir una tabla que contenga las lecturas del instrumento al inicio de las mediciones y al final de cada hora de observación (Fig. 1.10).

    La tabla resultante no proporciona una imagen completamente completa de cómo cambió la presión durante el período de observación: por ejemplo, no se indica el valor de presión más alto que ocurrió durante la cuarta hora de observación. Pero si tabula los valores de presión observados cada media hora o 15 minutos, la nueva tabla dará una imagen más completa de cómo cambió la presión.
    Por lo tanto, convertimos la información presentada en forma continua (barograma, curva) a forma discreta (tabla) con cierta pérdida de precisión.
    En el futuro, se familiarizará con las formas de representar discretamente información gráfica y de audio.

    Las cadenas de tres símbolos binarios se obtienen complementando los códigos binarios de dos dígitos de la derecha con el símbolo 0 o 1. Como resultado, las combinaciones de códigos de tres símbolos binarios son 8, el doble que las de dos símbolos binarios:
    En consecuencia, un binario de cuatro bits le permite obtener 16 combinaciones de códigos, uno de cinco bits - 32, uno de seis bits - 64, etc. La longitud de la cadena binaria (el número de caracteres en el código binario) es llamada profundidad de bits del código binario.
    Tenga en cuenta que:
    4 = 2 * 2,
    8 = 2 * 2 * 2,
    16 = 2 * 2 * 2 * 2,
    32 = 2 * 2 * 2 * 2 * 2 etc.
    Aquí, el número de combinaciones de códigos es el producto de un cierto número de factores idénticos igual a la profundidad de bits del código binario.
    Si el número de combinaciones de códigos se indica con la letra N y la profundidad de bits del código binario con la letra i, entonces el patrón identificado en forma general se escribirá de la siguiente manera:
    norte = 2 * 2 * ... * 2.
    yo factores
    En matemáticas, dichos productos se escriben como:
    norte = 2 yo.
    La entrada 2 i se lee de la siguiente manera: “2 elevado a la i-ésima potencia”.

    Tarea. El líder de la tribu Multi ordenó a su ministro que desarrollara un binario y tradujera en él toda la información importante. ¿Qué tamaño binario se requerirá si el alfabeto utilizado por la tribu Multi contiene 16 caracteres? Anote todas las combinaciones de códigos.
    Solución. Dado que el alfabeto multitribu consta de 16 caracteres, se necesitan 16 combinaciones de códigos. En este caso, la longitud (profundidad de bits) del código binario se determina a partir de la relación: 16 = 2 i. Por tanto i = 4.
    Para escribir todas las combinaciones de códigos de cuatro 0 y 1, utilizamos el diagrama de la Fig. 1.13: 0000, 0001, 0010, 0011, 0100, 0101, 0110,0111,1000,1001,1010,1011,1100,1101,1110,1111.

    1.5.3. La versatilidad de la codificación binaria
    Al principio de esta sección aprendiste que, representado en forma continua, se puede expresar mediante símbolos en algún lenguaje natural o formal. A su vez, los caracteres de un alfabeto arbitrario se pueden convertir a binario. Así, utilizando código binario se pueden representar cualquier lenguaje natural y formal, así como imágenes y sonidos (figura 1.14). Esto significa la universalidad de la codificación binaria.
    Los códigos binarios se utilizan ampliamente en tecnología informática y requieren solo dos estados de un circuito electrónico: "encendido" (corresponde al número 1) y "apagado" (corresponde al número 0).
    La simplicidad de la implementación técnica es la principal ventaja de la codificación binaria. La desventaja de la codificación binaria es la gran longitud del código resultante.

    1.5.4. Códigos uniformes y no uniformes
    Hay códigos uniformes y no uniformes. Los códigos uniformes en combinaciones de códigos contienen la misma cantidad de símbolos, los impares contienen un número diferente.
    Arriba vimos códigos binarios uniformes.
    Un ejemplo de código no uniforme es el código Morse, en el que se define una secuencia de señales cortas y largas para cada letra y número. Entonces, la letra E corresponde a una señal corta (“punto”) y la letra Ш corresponde a cuatro señales largas (cuatro “guiones”). Desigual le permite aumentar la velocidad de transmisión de mensajes debido al hecho de que los símbolos que aparecen con más frecuencia en la información transmitida tienen las combinaciones de códigos más cortas.

    La información que proporciona este símbolo es igual a la entropía del sistema y es máxima en el caso de que ambos estados sean igualmente probables; en este caso, el símbolo elemental transmite información 1 (dos unidades). Por lo tanto, la base de una codificación óptima será el requisito de que los caracteres elementales en el texto codificado aparezcan en promedio con la misma frecuencia.

    Presentemos aquí un método para construir un código que satisfaga la condición establecida; Este método se conoce como código Shannon-Fano. Su idea es que los símbolos codificados (letras o combinaciones de letras) se dividan en dos grupos aproximadamente igualmente probables: para el primer grupo de símbolos, se coloca 0 en el primer lugar de la combinación (el primer carácter del número binario que representa el símbolo); para el segundo grupo - 1. A continuación, cada grupo se divide nuevamente en dos subgrupos aproximadamente igualmente probables; para los símbolos del primer subgrupo, el cero se coloca en el segundo lugar; para el segundo subgrupo: uno, etc.

    Demostremos el principio de construir el código Shannon-Fano utilizando el material del alfabeto ruso (Tabla 18.8.1). Contemos las primeras seis letras (de “-” a “t”); sumando sus probabilidades (frecuencias), obtenemos 0,498; todas las demás letras (desde “n” hasta “sf”) tendrán aproximadamente la misma probabilidad de 0,502. Las primeras seis letras (de “-” a “t”) tendrán un 0 binario en primer lugar. Las letras restantes (de “n” a “f”) tendrán un uno en primer lugar. A continuación, volvemos a dividir el primer grupo en dos subgrupos aproximadamente igualmente probables: de “-” a “o” y de “e” a “t”; para todas las letras del primer subgrupo en el segundo lugar pondremos cero y para las del segundo subgrupo uno. Continuaremos el proceso hasta que en cada división quede exactamente una letra, que será codificada con un determinado número binario. El mecanismo para construir el código se muestra en la Tabla 18.8.2, y el código en sí se muestra en la tabla 18.8.3.

    Tabla 18.8.2.

    signos binarios

    Tabla 18.8.3

    Usando la Tabla 18.8.3, puede codificar y decodificar cualquier mensaje.

    Como ejemplo, escribamos la frase "teoría de la información" en código binario.

    01110100001101000110110110000

    0110100011111111100110100

    1100001011111110101100110

    Tenga en cuenta que no es necesario separar las letras entre sí con un signo especial, ya que la decodificación se realiza de forma inequívoca incluso sin esto. Puede verificar esto decodificando la siguiente frase usando la Tabla 18.8.2:

    10011100110011001001111010000

    1011100111001001101010000110101

    010110000110110110

    (“método de codificación”).

    Sin embargo, cabe señalar que cualquier error de codificación (confusión aleatoria de caracteres 0 y 1) con dicho código es desastroso, ya que decodificar todo el texto que sigue al error se vuelve imposible. Por lo tanto, este principio de codificación sólo puede recomendarse en los casos en que prácticamente se eliminan los errores al codificar y transmitir un mensaje.

    Surge una pregunta natural: ¿el código que hemos compilado, a falta de errores, es realmente óptimo? Para responder a esta pregunta, encontremos la información promedio por símbolo elemental (0 o 1) y compárela con la máxima información posible, que es igual a una unidad binaria. Para hacer esto, primero encontramos la información promedio contenida en una letra del texto transmitido, es decir, la entropía por letra:

    ,

    donde es la probabilidad de que la letra adopte un determinado estado (“-”, o, e, a,..., f).

    De la mesa 18.8.1 tenemos

    (dos unidades por letra de texto).

    Usando la tabla 18.8.2, determinamos el número promedio de símbolos elementales por letra.

    Dividiendo la entropía por obtenemos información por símbolo elemental

    (dos unidades).

    Así, la información por carácter está muy cerca de su límite superior de 1, y el código que hemos elegido está muy cerca del óptimo. Si nos mantenemos dentro de los límites de la tarea de codificar letras, no podemos lograr nada mejor.

    Tenga en cuenta que en el caso de codificar números de letras simplemente binarios, tendríamos una imagen de cada letra con cinco caracteres binarios y la información de un carácter sería

    (dos unidades),

    es decir, notablemente menos que con la codificación de letras óptima.

    Sin embargo, cabe señalar que codificar “por letras” no es nada económico. El hecho es que siempre existe una dependencia entre letras adyacentes de cualquier texto significativo. Por ejemplo, después de una vocal en el idioma ruso no puede haber “ъ” o “ь”; "Yo" o "yu" no pueden aparecer después de los silbidos; después de varias consonantes seguidas, aumenta la probabilidad de que aparezca una vocal, etc.

    Sabemos que cuando se combinan sistemas dependientes, la entropía total es menor que la suma de las entropías de los sistemas individuales; por lo tanto, la información transmitida por un fragmento de texto conectado es siempre menor que la información por carácter multiplicada por el número de caracteres. Teniendo en cuenta esta circunstancia, se puede construir un código más económico si no se codifica cada letra individualmente, sino “bloques” completos de letras. Por ejemplo, en un texto ruso tiene sentido codificar por completo algunas combinaciones de letras que aparecen con frecuencia, como “tsya”, “ayet”, “nie”, etc. Los bloques codificados están ordenados en orden de frecuencia descendente, como las letras en la mesa. 18.8.1, y la codificación binaria se realiza según el mismo principio.

    En algunos casos, resulta razonable codificar ni siquiera bloques de letras, sino fragmentos completos de texto con significado. Por ejemplo, para aliviar el telégrafo durante las vacaciones, es aconsejable codificar textos estándar completos con números convencionales, como por ejemplo:

    “Felicitaciones por el Año Nuevo, le deseo mucha salud y éxito en su trabajo”.

    Sin detenernos específicamente en los métodos de codificación de bloques, nos limitaremos a formular el teorema de Shannon relacionado aquí.

    Que haya una fuente de información y un receptor conectados por un canal de comunicación (Fig. 18.8.1).

    Se conoce la productividad de la fuente de información, es decir, el número medio de unidades de información binaria procedentes de la fuente por unidad de tiempo (numéricamente es igual a la entropía media del mensaje producido por las fuentes por unidad de tiempo). Conozcamos, además, la capacidad del canal, es decir, la cantidad máxima de información (por ejemplo, caracteres binarios 0 o 1) que el canal es capaz de transmitir en una misma unidad de tiempo. Surge la pregunta: ¿cuál debería ser la capacidad del canal para que “haga frente” a su tarea, es decir, para que la información llegue sin demora desde la fuente al receptor?

    La respuesta a esta pregunta viene dada por el primer teorema de Shannon. Formulémoslo aquí sin pruebas.

    El primer teorema de Shannon

    Si la capacidad del canal de comunicación es mayor que la entropía de la fuente de información por unidad de tiempo.

    entonces siempre es posible codificar un mensaje suficientemente largo para que sea transmitido por un canal de comunicación sin demora. Si por el contrario,

    entonces la transferencia de información sin demora es imposible.



    ¿Te gustó el artículo? Compártelo