¿Hay una alternativa a los bits?


42

¿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?


8
Necesitaría una infinidad de estados para poder almacenar flotadores arbitrarios, por lo que esto no sería factible.
ChrisF

2
@ChrisF: ¿Puedes representar una infinidad de carrozas con una cantidad limitada de bits?
usuario desconocido

11
@userunknown: no, no puedes. Es por eso que la aritmética de coma flotante es propensa a errores. Lo que intentaba decir era que tener más estados en realidad no resolvería nada.
ChrisF


55
Es imposible representar de forma única un número infinito de flotadores diferentes. Tendría que almacenar una cantidad infinita de información para identificar de forma única un único flotador infinito, lo que no se puede hacer en una cantidad finita de espacio debido a la física . El almacenamiento de información en exceso de una cierta cantidad en un volumen dado requiere una densidad tal que el contenido se aplastará gravitacionalmente a MAX_DENSITY en tiempo finito, incluso si pueden viajar a MAX_SPEED (mejor conocido como 'la velocidad de la luz'): un negro hoyos . Ver en.wikipedia.org/wiki/Bekenstein_bound para las implicaciones de CompSci.

Respuestas:


59

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).


17
@Dokkat: El almacenamiento de dominio continuo, como una cinta analógica, es excelente en teoría, pero en la práctica, sufre de un ruido y degradación irrecuperables, que es una de las razones por las que estamos usando computadoras digitales en primer lugar.
tdammers

19
En teoría de la información, es bastante posible transmitir menos de 1 bit de información. La idea básica es que un bit de datos solo contiene un bit de información si ambos estados son igualmente probables. Según esa definición, en el desierto del Sahara la respuesta "no" a la pregunta "¿llovió hoy?" lleva menos de 1 bit de información porque esa es casi siempre la respuesta.
Michael Borgwardt

99
@Dokkat solía ser común para modelar cantidades analógicas complejas, la computadora 'digital' era un sistema de control para la computadora analógica. En la práctica, es difícil construir un circuito analógico con la resolución de undouble
Martin Beckett

55
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.
BlueRaja - Danny Pflughoeft

3
Como dice @tdammers, es difícil igualar incluso flotadores de precisión simple utilizando señales analógicas. Los flotadores de 32 bits tienen efectivamente 24 bits de precisión; Los circuitos analógicos con ruido comparable son caros, requieren mucha energía, son lentos y muy muy sensibles a su entorno.
tormenta el

26

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.


Una computación analógica solía ser bastante común, pero en última instancia, la digital puede ser más precisa. Usar unos pocos bits más en la memoria para representar un valor es francamente trivial en comparación con tratar de reducir el ruido varios dB más bajo (3 bits ~ 20 dB), y en algún momento (varía según la velocidad) físicamente imposible.
Nick T

Me gusta el énfasis aquí en la computación analógica y los ejemplos. Viniendo de un fondo de ciencia estrictamente digital no siempre vi lo que era la computación analógica. Aunque buscar en Google para eso dará muchos ejemplos. Creo recordar haber visto que un prisma "computa" la transformada de Fourier, porque divide la luz entrante en sus frecuencias constituyentes. Lo hace bastante rápido, con 0 de energía (en el sentido de los requisitos para calcular el FT). Por supuesto, hacer algo con el resultado probablemente requeriría digitalización.
Paul

@NickT Norbert Wiener, autor de cibernética y uno de los primeros jugadores en el campo de la teoría de control / recordó en su libro que, en última instancia, fue el menor costo de los circuitos binarios en comparación con el equivalente analógico lo que provocó que los laboratorios, los investigadores y la industria optaran por el binario
Christophe

20

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.


1
esto me duele la cabeza al leer eso ...
Ryathal

No estoy seguro exactamente cómo funciona un qubit (lo estoy leyendo, así que lo actualizaré más adelante), pero sé que los qubits no son prácticos con la tecnología actual, mientras que ese concepto no lo es. Por ejemplo, uno podría representar físicamente el bit 'flotante' por la cantidad de agua que llena un vaso y medirlo usando una balanza.
Dokkat

11
Nitpicking: un qubit no contiene estados entre 0 y 1. Todavía es 0 o 1, pero puede tener múltiples estados simultáneamente . (Al igual que el gato de Schrodinger, que no está "medio muerto", sino vivo y muerto simultáneamente)
nikie

77
@Ryathal Eso es realmente una buena señal: "Cualquiera que no esté conmocionado por la teoría cuántica no lo ha entendido". - Niels Bohr
Dan Neely

1
Por alguna razón, siempre imagino qubits como Tribbles azul pálido o rosa.
Wayne Werner

17

Una cuestión de precisión

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:

  • 1 a 10 voltios: 0
  • 10 a 20 voltios: 1
  • 20 a 30 voltios: 2

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.


1
Para ser justos, los circuitos digitales tienen que definir valores medibles que sean definitivamente verdaderos o falsos, y estados intermedios que son "indefinidos". En la lógica de 3.3 / 5V podría ser <0.8V es falso,> 2.5V es verdadero. El ruido sigue siendo un problema si saca la señal de esos rangos. Por ejemplo, tratar de bajar una señal a un nivel bajo usando un transistor NPN solo lo bajará a 0.55 a 0.7V dependiendo de ciertos factores. No hay mucho para jugar. Simplemente lo hace más difícil cuando define rangos más definidos.
Scott Whitlock

2
@ScottWhitlock esas son solo especificaciones; a menos que el pasador está diseñado para aceptar HiZ o similar, que va a ser la interpretación de la entrada como un 1 o 0, y que punto puede variar en función de la temperatura, por lotes, tensión de alimentación, etc. fabricación Esa región indefinido no es una característica ( parece sugerir que podría explotarlo por lógica difusa).
Nick T

1
@NickT: la región indefinida marca que hay una distorsión importante (una que es tan importante que la corrección de error normal podría no recuperarla) y es necesaria una posible retransmisión.
Mentira Ryan

2
@LieRyan, está considerando un nivel mucho más alto de lo que tratan esas especificaciones (capa física). La región indefinida solo significa que el comportamiento (cómo se lee el bit) es indefinido y no está garantizado. Todavía podría funcionar bien.
Nick T


3

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.


2

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.


2

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.


2

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.


1

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.


Hablando esin mencionar también la nat ? Para vergüenza.
Ben Voigt

1
@BenVoigt ¿eh? ¿Qué es nat ? :) google me dijo algunas cosas raras, que no encajan bien en el tema.
B 1овић

@BenVoigt ¿Tal vez te referías a Nat (información) ? Un nat ... es una unidad logarítmica de información o entropía, basada en logaritmos naturales y poderes de e, en lugar de los poderes de 2 y logaritmos de base 2 que definen el bit.
un CVn

@ MichaelKjörling: Eso es exactamente.
Ben Voigt

0

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.


1
Sin embargo, esto realmente no califica como una unidad de datos, ya que básicamente ha codificado 0 como "no presente" y 1 como 0. Todavía son bits.
DeadMG

No es binario, es unario. El punto es que el elemento de datos tiene solo un estado, no dos. La presencia o ausencia no es un estado, el estado del elemento es siempre el mismo, por lo tanto, es un dígito unario. Básicamente estoy describiendo el sistema de marca de conteo.
Martin Maat el

-1

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.


-1

Si define natural al acercarse a cómo funciona la madre naturaleza, la forma más natural de codificación de información son combinaciones similares a ADN de adenina, citosina, guanina y timina.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.