¿Existe una alternativa a los bits como la unidad de datos más pequeña? ¿Algo que no sea solo 0 o 1, sino que en realidad contenga muchos estados posibles en el medio? ¿No sería más natural almacenar flotadores como ese?
¿Existe una alternativa a los bits como la unidad de datos más pequeña? ¿Algo que no sea solo 0 o 1, sino que en realidad contenga muchos estados posibles en el medio? ¿No sería más natural almacenar flotadores como ese?
Respuestas:
Por supuesto que es posible, tanto teórica como prácticamente.
Teóricamente, hay dos clases de alternativas: sistemas numéricos digitales con una base distinta de 2 (de hecho, el sistema decimal tal como lo conocemos es uno de esos sistemas); y sistemas numéricos no digitales. Hablando matemáticamente, estamos hablando de dominios discretos versus dominios 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 omnipresente; otras bases, por ejemplo, ternarias, deberían ser igual de factibles (o inviables). El lenguaje de programación esotérico Malbolge se basa en una computadora ternaria teórica; Si bien es principalmente satírico, no hay una razón técnica por la que no debería funcionar. Históricamente, el almacenamiento y el procesamiento de dominio continuo se realizaban en computadoras analógicas, donde se podían codificar cantidades como frecuencias y / o amplitudes de señales oscilantes, y luego se realizaban cálculos aplicando todo tipo de modulaciones a estas señales. Hoy, la computación cuántica vuelve a hacer interesante la teoría detrás de las celdas de almacenamiento continuo.
De cualquier manera, el bit como unidad teórica de información 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).
double
Some of the early digital computers employed decimal encodings rather than the now ubiquitous binary encoding
- En realidad, las codificaciones decimales todavía se usan en la actualidad; Se llama BCD . El BIOS en la mayoría de las computadoras lo usa (para fechas basadas en decimales) , así como la mayoría de las calculadoras baratas , porque requiere menos circuitería (es decir, es más barato) para hacer todo en BCD de lo que es hacerlo en binario y tener un convertidor binario a decimal.
Básicamente, estás 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 es difícil de comunicar y la transmisión es un problema porque pierde fuerza a medida que avanza.
Si está interesado en explorar la computación analógica, la mayoría de las clases de "introducción a la electrónica" de pregrado le permiten construir cosas como integradores de amplificadores operacionales . Son lo suficientemente fáciles de construir incluso sin instrucción formal.
También puede almacenar múltiples estados digitales en el mismo nodo. Por ejemplo, en lugar de que 0-2.5 voltios sea cero y 2.5-5.0 voltios sea uno, puede agregar un tercer estado intermedio. Sin embargo, agrega mucha complejidad y aumenta significativamente su susceptibilidad al ruido.
Esos se llaman qubits y se usan en computadoras cuánticas. Encontrará más información sobre ellos en la entrada de wikipedia . Se están realizando investigaciones para hacer que esas computadoras sean estables y económicamente viables.
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, en última instancia, 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 muchos 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 o los imanes o los rayos cósmicos o lo que sea causa alguna fluctuación, podemos leer el número incorrecto. Y cuanto más finamente pretendemos medir, mayor es el riesgo. ¡Imagínese si una diferencia de 1 milivoltio fuera significativa!
En cambio, generalmente usamos una interpretación digital . Todo lo que supera un umbral es verdadero y todo lo que está debajo es falso. Entonces podemos hacer preguntas como "¿Hay alguna corriente en absoluto?" en lugar de " ¿Cuánta corriente hay exactamente ?"
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. http://en.wikipedia.org/wiki/Ternary_computer
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 sus cálculos ...
Bien podría ser más natural para nosotros, pero hay razones específicas por las que se eligió el binario para los circuitos digitales y, por lo tanto, para los lenguajes de programación. Si tiene dos estados, solo necesita distinguir entre dos configuraciones de voltios, digamos 0V y 5V. Por cada aumento adicional a la raíz (base), necesitaría dividir aún más ese rango para obtener valores que no se diferencian entre sí. Podría aumentar el rango de voltaje, pero eso tiene el desagradable hábito de derretir los circuitos.
Si desea cambiar el tipo de hardware de los circuitos digitales, 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 indicó en otras partes, tienen otras formas de tratar las cosas. Las computadoras ópticas también pueden hacer cosas que no hemos tratado antes y las computadoras magnéticas también son una posibilidad.
Creo que hoy en día podrías construir elementos que pudieran contener cualquier cantidad de estados o incluso trabajar con datos analógicos. Aunque construir un sistema completo y hacer que se ejecuten todos los componentes lógicos para obtener una arquitectura completa y programable sería mucho trabajo y un riesgo financiero para cualquier empresa realizar esta tarea.
Creo que ENIAC fue la última arquitectura en utilizar contadores de anillo de diez posiciones para almacenar dígitos. Aunque podría estar equivocado sobre esto y no estoy seguro, cuánto influyó esto en las otras partes de la máquina.
El almacenamiento puede considerarse como una transmisión hacia el 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 cubren muchas respuestas, mucho mejor de lo que yo podría.
Mi principal preocupación es cómo se codifica este estado almacenado y parece que hay una alta posibilidad de que esta tarea sea una tarea tonta, 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 verdaderamente continuos son imposibles de almacenar de esta manera, pero las ecuaciones para calcularlos, por ejemplo
1/3
puede ser almacenado.
Una pista y un indicio son piezas de información más pequeñas que un bit. Generalmente se requieren varias pistas para establecer el valor definido de un bit. Los inklings son peores: no importa cuántos sumes, aún no puedes saber el valor del bit resultante con certeza.
Más en serio, hay lógicas de valores múltiples donde la unidad fundamental puede tener uno de n estados, donde n> 2. Podría considerar que estas unidades llevan menos información que un bit en el sentido del párrafo anterior, pero a partir de una teoría de la información punto de vista tendrías que decir que llevan más. Por ejemplo, necesitaría dos bits para representar la misma cantidad de información que podría contener un solo valor en una lógica de cuatro valores.
La base numérica óptima es e , pero dado que la forma más simple de representar un número en electrónica digital es con dos estados (alto voltaje = 1, bajo voltaje = 0), se eligió la representación del número binario.
e
sin mencionar también la nat ? Para vergüenza.
Hay una unidad de datos más pequeña posible. No sé un nombre oficial para eso, llamémoslo un onu.
Bit es una palabra combinada inteligente para "dígito binario", lo que significa que tiene dos estados posibles. Por lo tanto, debe haber un tipo de dígito con un solo estado posible.
Veamos qué significa eso. Significa que solo tendría ceros para trabajar.
¿Cómo contarías? En cualquier sistema x-base, aumenta el valor hasta que se le acaben los dígitos y luego agrega un dígito para formar un número. Si solo tiene un dígito, se quedará sin dígitos de inmediato, por lo que:
Cero = 0 Uno = 00 Dos = 000, etc.
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 le gusta, puede redefinir el valor de 0 a uno. Entonces es realmente natural: ningún cero es ninguno, un cero es uno, dos ceros son dos, etc.
Sin embargo, esto no es práctico para una máquina de estado sólido. Los dígitos tendrían que colocarse y eliminarse físicamente y no se escala bien.
No puedo encontrar una referencia definitiva en inglés, pero por lo que recuerdo de la clase de teoría de la información, el bit es la 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 lado). Todo lo demás se puede reducir a esto.
Incluso si usa un dispositivo que tiene múltiples estados, siempre se puede reducir a bits.