¿Existe una alternativa a los bits como la unidad de datos más pequeña? ¿Algo que no sea solo 0 o 1, pero en realidad contiene muchos estados posibles en medio? ¿No sería más natural almacenar flotadores así?
¿Existe una alternativa a los bits como la unidad de datos más pequeña? ¿Algo que no sea solo 0 o 1, pero en realidad contiene muchos estados posibles en medio? ¿No sería más natural almacenar flotadores así?
Por supuesto que es posible, tanto teórica como prácticamente.
Teóricamente, existen dos clases de alternativas: sistemas numéricos digitales con una base distinta de 2 (de hecho, el sistema decimal que conocemos es uno de esos sistemas); y sistemas numéricos no digitales. Hablando matemáticamente, estamos hablando de dominios discretos frente a continuos.
En la práctica, ambas opciones han sido exploradas. Algunas de las primeras computadoras digitales (por ejemplo, ENIAC) emplearon codificaciones decimales en lugar de la codificación binaria ahora ubicua; otras bases, por ejemplo Ternario, debe ser tan factible (o inviable). El lenguaje de programación esotérico Malbolge se basa en una computadora ternaria teórica; mientras que en su mayoría es satírico, no hay ninguna razón técnica por la que no debería funcionar. El procesamiento y almacenamiento en el dominio continuo se realizó históricamente en computadoras analógicas, donde se podían codificar cantidades como frecuencias y / o amplitudes de señales oscilantes, y luego se realizarían cálculos aplicando todo tipo de modulaciones a estas señales. Hoy en día, la computación cuántica hace que la teoría detrás de las celdas de almacenamiento continuo sea nuevamente interesante.
De cualquier manera, el bit como una unidad de información teórica más pequeña sigue en pie, ya que cualquier alternativa puede codificar más información que un solo sí / no, y nadie ha encontrado una unidad teórica más pequeña (y no espero que suceda en cualquier momento pronto).
Básicamente está describiendo una señal analógica, que se usa en sensores, pero rara vez para cálculos internos. El problema es que el ruido degrada la calidad, necesita una calibración muy precisa de un punto de referencia que sea difícil de comunicar, y la transmisión es un problema porque pierde fuerza a medida que avanza.
Si estás interesado en explorar la computación analógica, la mayoría de las clases de "introducción a la electrónica" te permiten crear elementos como op- integradores de amplificadores . Son lo suficientemente fáciles de construir incluso sin instrucción formal.
También puede almacenar varios estados digitales en el mismo nodo. Por ejemplo, en lugar de que 0-2.5 voltios sean cero y 2.5-5.0 voltios sean uno, puede agregar un tercer estado intermedio. Sin embargo, agrega mucha complejidad y aumenta significativamente tu susceptibilidad al ruido.
Una razón por la que usamos bits es que nos ayuda a almacenar y recuperar información con precisión.
El mundo real es analógico, por lo tanto, toda la información que las computadoras pasan o almacenan es finalmente analógica . Por ejemplo, una corriente de un voltaje específico en un cable, o una carga magnética de una fuerza específica en un disco, o un pozo de una profundidad específica en un disco láser.
La pregunta es: ¿con qué precisión puede medir esa información analógica ? Imagine que una corriente en un cable podría interpretarse como cualquier número decimal, de la siguiente manera:
Etc. Este sistema nos permitiría pasar una gran cantidad de datos en unos pocos pulsos de corriente, ¿verdad? Pero hay un problema: tenemos que estar muy seguros de cuál es el voltaje. Si la temperatura, los imanes, los rayos cósmicos o lo que sea que cause alguna fluctuación, podemos leer el número equivocado. Y cuanto más finamente intentamos medir, mayor es el riesgo. ¡Imagínese si una diferencia de 1 milivoltio fuera significativa!
En cambio, usualmente usamos una interpretación digital . Todo sobre un umbral es verdadero, y todo debajo es falso. Así que podemos hacer preguntas como "¿Hay alguna corriente en absoluto?" en lugar de " Exactamente ¿cuánta corriente hay?"
Cada bit individual se puede medir con confianza, porque solo tenemos que estar "en el estadio correcto". Y al usar muchos bits, aún podemos obtener mucha información.
También hay computadoras ternarias en lugar de binarias. enlace
Una computadora ternaria (también llamada computadora trinaria ) es una computadora que usa lógica ternaria (tres valores posibles) en lugar de la lógica binaria más común (dos valores posibles) en su cálculos ...
Puede que sea más natural para nosotros, pero hay razones específicas por las que se eligió el binario para circuitos digitales y, por lo tanto, para lenguajes de programación. Si tiene dos estados, solo necesita distinguir entre configuraciones de dos voltios, por ejemplo, 0V y 5V. Por cada aumento adicional al radix (base), necesitaría dividir aún más ese rango, obteniendo así valores indistintos entre sí. Podría aumentar el rango de voltaje, pero eso tiene la mala costumbre de derretir los circuitos.
Si desea cambiar el tipo de hardware del circuito digital, sus opciones son más variadas. Los decimales solían usarse en computadoras mecánicas, ya que los engranajes tienen mucha más tolerancia al calor y son mucho más distintos que las cargas de electrones. Las computadoras cuánticas como se indica en otros lugares tienen otras formas de tratar las cosas. Las computadoras ópticas también podrían hacer cosas que no hemos tratado antes y computadoras magnéticas También son una posibilidad.
Creo que hoy en día se podrían crear elementos que podrían contener cualquier cantidad de estados o incluso trabajar con datos analógicos. Si bien la creación de un sistema completo y la ejecución de todos los componentes lógicos para obtener una arquitectura programable y con todas las funciones sería una gran cantidad de trabajo y un riesgo financiero para cualquier empresa que realice esta tarea.
Creo que ENIAC fue la última arquitectura en usar contadores de anillo de diez posiciones para almacenar dígitos. Aunque podría estar equivocado al respecto y no estoy seguro, cuánto influyó esto en las otras partes de la máquina.
El almacenamiento puede pensarse como una transmisión al futuro, se aplicarán todos los problemas de transmisión con medios continuos (analógicos).
El almacenamiento de esos estados podría ser trivial (un interruptor de tres vías o algún tipo de cuadrícula) y el almacenamiento físico de estos estados es un problema que muchas respuestas cubren, mucho mejor que yo.
Mi principal preocupación es cómo se codifica este estado almacenado y parece que existe una alta posibilidad de que esta tarea sea una tarea imprecisa, ya que los bits son suficientes para la representación de datos continuos prácticos, dependiendo de la precisión que necesite, siga agregando más bits .
Los datos realmente continuos son imposibles de almacenar de esta manera, pero las ecuaciones para calcularlos, por ejemplo.
1/3
se puede almacenar.
Una pista y un inkling son piezas de información más pequeñas que un bit. Normalmente se requieren varias pistas para establecer el valor definido de un bit. Las infracciones son peores: no importa la cantidad que agregues, aún no puedes saber el valor del bit resultante con certeza.
Más en serio, hay lógicas de múltiples valores donde la unidad fundamental puede tener uno de n estados, donde n > 2. Podría considerar que estas unidades contienen menos información que un poco en el sentido del párrafo anterior, pero desde el punto de vista de la teoría de la información tendrían que decir que tienen más. Por ejemplo, necesitaría dos bits para representar la misma cantidad de información que podría llevar un solo valor en una lógica de cuatro valores.
La base numérica óptima es e , pero desde la más simple La forma de representar un número en la electrónica digital es con dos estados (alto voltaje = 1, bajo voltaje = 0), se eligió la representación del número binario.
Hay una unidad de datos más pequeña posible. No conozco un nombre oficial para eso, llamémoslo un un.
Bit es una combo-palabra inteligente para "binario digIT", lo que significa que tiene dos estados posibles. Por lo tanto, debe haber un tipo de dígito con un solo estado posible.
Veamos lo que eso significa. Significa que solo tendrías ceros con los que trabajar.
¿Cómo contarías? En cualquier sistema x-base, aumenta el valor hasta que se queda sin dígitos y luego agrega un dígito para formar un número. Si solo tiene un dígito, se quedará sin dígitos inmediatamente, por lo que:
Cero = 0 Uno = 00 Dos = 000 etcétera
Esto es definitivamente más natural: ¡más es más! Se asigna perfectamente a cualquier número discreto de cosas. Cuantas papas 00000 Eso es cuatro papas. Espera un minuto ... eso es off-by-one. Si no te gusta, puedes redefinir el valor de 0 a uno. Entonces es realmente natural: no hay ceros ninguno, uno cero es uno, dos ceros son dos, etcétera.
Sin embargo, esto no es práctico para una máquina de estado sólido. Los dígitos deberían colocarse y eliminarse físicamente, y no se escalan bien.
No puedo encontrar una referencia definitiva en inglés, pero por lo que recuerdo de Clase de teoría de la información la < Strong> bit es una unidad fundamental de información. Un poco de información es la información que recibe después de lanzar una moneda justa (50% de probabilidad para cada cara). Todo lo demás puede reducirse a esto.
Incluso si usa un dispositivo que tiene varios estados, siempre se puede reducir a bits.
Si se define natural por estar cerca de cómo funciona la madre naturaleza, la forma más natural de codificación de la información son las combinaciones de adenina, citosina, guanina y timina similares al ADN.
Lea otras preguntas en las etiquetas floating-point byte bit data binary