Есть ли альтернатива битам как наименьшей единице данных? Что-то, что не будет только 0 или 1, но на самом деле содержит много возможных состояний между ними? Разве не было бы более естественным хранить такие поплавки?
Вам понадобится бесконечное число состояний, чтобы иметь возможность хранить произвольные числа с плавающей запятой, так что это не осуществимо.
ChrisF
2
@ChrisF: Можете ли вы представить бесконечность чисел с ограниченным количеством битов?
пользователь неизвестен
11
@userunknown - нет, ты не можешь. Вот почему арифметика с плавающей точкой подвержена ошибкам. Я пытался сказать, что наличие большего количества штатов на самом деле ничего не решит.
Невозможно однозначно представить бесконечное количество различных поплавков. Вам нужно будет хранить бесконечное количество информации, чтобы однозначно идентифицировать один бесконечный плавучий механизм, что невозможно сделать в ограниченном количестве пространства из-за физики . Хранение информации, превышающее определенное количество в данном объеме, требует такой плотности , чтобы содержимое было гравитационно раздроблено до MAX_DENSITY за конечное время, даже если они могут перемещаться со скоростью MAX_SPEED (более известной как «скорость света»): черный отверстие . См en.wikipedia.org/wiki/Bekenstein_bound для последствий CompSci.
Ответы:
59
Конечно, это возможно, как теоретически, так и практически.
Теоретически существует два класса альтернатив: цифровые системы счисления с основанием, отличным от 2 (фактически, десятичная система, поскольку мы знаем, что это одна из таких систем); и нецифровые системы счисления. Говоря математически, мы говорим о дискретных и непрерывных областях.
На практике оба варианта были изучены. Некоторые из ранних цифровых компьютеров (например, ENIAC) использовали десятичное кодирование, а не вездесущее двоичное кодирование; другие основания, например, троичные, должны быть такими же возможными (или неосуществимыми). Эзотерический язык программирования Malbolge основан на теоретическом троичном компьютере; в то время как в основном сатирические, нет технической причины, почему это не должно работать. Хранение и обработка в непрерывном домене исторически проводились на аналоговых компьютерах, где вы могли кодировать величины в виде частот и / или амплитуд колеблющихся сигналов, а затем выполнять вычисления, применяя всевозможные модуляции к этим сигналам. Сегодня квантовые вычисления вновь делают интересной теорию непрерывных ячеек памяти.
В любом случае, бит как теоретическая наименьшая единица информации все еще остается в силе, поскольку любая альтернатива может кодировать больше информации, чем одно да / нет, и никто еще не придумал меньшую теоретическую единицу (и я не ожидаю, что это произойдет в любое время скоро).
@Dokkat: Непрерывное хранение в домене, такое как аналоговая лента, прекрасно в теории, но на практике оно страдает от неустранимого шума и ухудшения качества, что является одной из причин, почему мы в первую очередь используем цифровые компьютеры.
tdammers
19
В теории информации вполне возможно передать менее 1 бита информации. Основная идея состоит в том, что один бит данных содержит только один бит информации, если оба состояния одинаково вероятны. Согласно этому определению, в пустыне Сахара ответ «нет» на вопрос «сегодня шел дождь?» несет менее 1 бит информации, потому что это почти всегда ответ.
Майкл Боргвардт
9
@Dokkat раньше был обычным для моделирования сложных аналоговых величин, «цифровой» компьютер был системой управления для аналогового компьютера. На практике сложно построить аналоговую схему с разрешениемdouble
Мартин Беккет
5
Some of the early digital computers employed decimal encodings rather than the now ubiquitous binary encoding- На самом деле, десятичные кодировки все еще используются сегодня; это называется BCD . BIOS в большинстве компьютеров использует его (для десятичных дат) , а также в большинстве дешевых калькуляторов, потому что он требует меньше схем (то есть дешевле), чтобы делать все в BCD, чем в двоичном и иметь двоично-десятичный преобразователь.
BlueRaja - Дэнни Пфлюгофт
3
Как говорит @tdammers, трудно сопоставить даже поплавки одинарной точности с использованием аналоговых сигналов. 32-разрядные числа с плавающей запятой имеют 24-битную точность; Аналоговые схемы со сравнимым шумом дорогие, энергоемкие, медленные и очень чувствительные к окружающей среде.
наступающий шторм
26
Вы в основном описываете аналоговый сигнал, который используется в датчиках, но редко для внутренних вычислений. Проблема в том, что шум ухудшает качество, вам нужна очень точная калибровка контрольной точки, с которой трудно общаться, а передача - это проблема, потому что она теряет силу, чем дальше она движется.
Если вы заинтересованы в изучении аналоговых вычислений, большинство старшекурсников «Введение в электронику» предлагают вам такие вещи, как интеграторы операционных усилителей . Их достаточно легко построить даже без формальных инструкций.
Вы также можете хранить несколько цифровых состояний на одном узле. Например, вместо 0-2,5 вольт, равных нулю, и 2,5-5,0 вольт, равных единице, вы можете добавить третье состояние между ними. Это добавляет много сложности, и значительно увеличивает вашу восприимчивость к шуму.
Аналоговые вычисления были довольно распространенным явлением, но в конечном итоге цифровые могут быть более точными. Использование нескольких дополнительных битов в памяти для представления значения совершенно тривиально по сравнению с попыткой снизить уровень шума на несколько дБ ниже (3 бита ~ 20 дБ), а в какой-то момент (зависит от скорости) физически невозможно.
Ник Т
Мне нравится акцент здесь на аналоговых вычислениях и примерах. Исходя из чисто цифровых технологий, я не всегда видел, что такое аналоговые вычисления. Хотя поиск в Google приведёт много примеров. Мне кажется, я вспоминаю, что видел призму, «вычисляющую» преобразование Фурье, потому что он расщепляет входящий свет на составляющие его частоты. Он делает это довольно быстро, с нулевой энергией (в смысле требований для вычисления FT). Конечно, чтобы что-то сделать с результатом, скорее всего, потребуется оцифровка.
Пол
@NickT Норберт Винер, автор кибернетики и ранний игрок в области теории управления и контроля, в своей книге напомнил, что в конечном итоге именно меньшая стоимость двоичных цепей по сравнению с аналоговым эквивалентом вызвала выбор лабораторий, исследователей и промышленности
Кристоф
20
Они называются кубитами и используются в квантовых компьютерах. Вы найдете больше информации о них в записи википедии . Проводятся исследования, чтобы сделать такие компьютеры стабильными и экономически целесообразными.
это заставляет мою голову болеть, когда я это читаю ...
Ryathal
Я не уверен точно, как работает кубит (я читаю его, поэтому я обновлю позже), но я знаю, что кубиты непрактичны с текущей технологией, в то время как эта концепция не. Например, можно физически представить «плавающий» бит количеством воды, наполняющей стакан, и измерить его, используя весы.
Dokkat
11
Подсказка: кубит не содержит состояний между 0 и 1. Он по-прежнему равен 0 или 1, но он может иметь несколько состояний одновременно . (Точно так же, как кот Шредингера, который не «полуживой», но мертвый и живой одновременно)
nikie
7
@Ryathal На самом деле это хороший знак: «Тот, кто не шокирован квантовой теорией, не понял этого». - Нильс Бор
Дан Нили
1
По какой-то причине я всегда изображаю кубиты как бледно-синие или розовые Триблз.
Уэйн Вернер
17
Вопрос точности
Одна из причин, по которой мы используем биты, заключается в том, что это помогает нам точно хранить и извлекать информацию.
Реальный мир является аналоговым, поэтому вся информация, которую компьютеры передают или хранят, в конечном итоге является аналоговой . Например, ток определенного напряжения на проводе, магнитный заряд определенной силы на диске или яма определенной глубины на лазерном диске.
Вопрос в том, насколько точно вы можете измерить эту аналоговую информацию ? Представьте, что ток на проводе можно интерпретировать как любое десятичное число, как показано ниже:
От 1 до 10 вольт: 0
От 10 до 20 вольт: 1
От 20 до 30 вольт: 2
И т.д. Эта система позволила бы нам передавать много данных за несколько импульсов тока, верно? Но есть проблема: мы должны быть очень уверены, что такое напряжение. Если температура или магниты, или космические лучи, или что-то другое вызывают колебания, мы можем прочитать неправильное число. И чем точнее мы будем измерять, тем больше этот риск. Представьте, если разница в 1 милливольт была значительной!
Вместо этого мы обычно используем цифровую интерпретацию . Все, что за некоторым порогом, является правдой, а все под ложью. Таким образом, мы можем задать такие вопросы, как "Есть ли какой-либо ток вообще?" вместо " Точно, сколько там тока?"
Каждый отдельный бит может быть измерен с уверенностью, потому что мы должны быть только «в правильном поле». И используя много битов, мы все еще можем получить много информации.
Чтобы быть справедливым, цифровые схемы должны определять измеримые значения, которые являются определенно истинными или ложными, и промежуточные состояния, которые являются «неопределенными». В логике 3,3 / 5 В это может быть <0,8 В, неверно,> 2,5 В верно. Шум, безусловно, остается проблемой, если он выводит сигнал из этих диапазонов. Например, попытка снизить сигнал до низкого уровня с помощью NPN-транзистора приведет к снижению напряжения только от 0,55 до 0,7 В в зависимости от определенных факторов. Не много, чтобы играть с. Вы просто усложняете, когда определяете более определенные диапазоны.
Скотт Уитлок
2
@ ScottWhitlock - это просто спецификации; если вывод не предназначен для приема HiZ и т.п., он будет интерпретировать вход как 1 или 0, и эта точка может варьироваться в зависимости от температуры, производственной партии, напряжения питания и т. д. Эта неопределенная область не является функцией ( кажется, вы предлагаете использовать его для нечеткой логики).
Ник Т
1
@NickT: неопределенная область отмечает, что существует серьезное искажение (такое, которое настолько велико, что нормальное исправление ошибок может не восстановить его), и возможна повторная передача.
Ли Райан
2
@LieRyan, вы рассматриваете гораздо более высокий уровень, чем те, с которыми имеют дело эти спецификации (физический уровень). Неопределенная область означает, что поведение (как читается бит) не определено и не гарантировано. Это все еще может работать просто отлично.
Троичный компьютер (также называемый Trinary компьютер ) представляет собой компьютер , который использует троичной логики (три возможных значения) вместо более распространенной двоичной логики (два возможных значения) в своих расчетах ...
Это может быть более естественным для нас, но есть конкретные причины, по которым двоичный код был выбран для цифровых схем и, следовательно, для языков программирования. Если у вас есть два состояния, вам нужно только различать две настройки напряжения, скажем, 0В и 5В. Для каждого дополнительного увеличения радиуса (базы) вам нужно будет еще больше разделить этот диапазон, получая значения, которые не различимы друг от друга. Вы могли бы увеличить диапазон напряжения, но у этого есть неприятная привычка плавления схем.
Если вы хотите изменить тип оборудования с цифровых схем, ваши варианты более разнообразны. Десятичные дроби раньше использовались в механических компьютерах, так как зубчатые колеса обладают гораздо большей жаростойкостью и намного более различимы, чем электронные заряды. Квантовые компьютеры, как указано в другом месте, имеют другие способы взаимодействия с вещами. Оптические компьютеры также могут выполнять то, с чем мы не сталкивались ранее, и магнитные компьютеры также возможны.
Я думаю, что в настоящее время вы можете создавать элементы, которые могут содержать любое количество состояний или даже работать с аналоговыми данными. Хотя создание целой системы и запуск всех логических компонентов для получения полнофункциональной и программируемой архитектуры будет большой работой и финансовым риском для любой компании, которая решит эту задачу.
Я думаю, что ENIAC была последней архитектурой, которая использовала десятипозиционные кольцевые счетчики для хранения цифр. Хотя я могу ошибаться и не уверен, насколько это повлияло на другие части машины.
Хранение можно рассматривать как передачу в будущее, все проблемы передачи с непрерывным (аналоговым) носителем будут применяться.
Хранение этих состояний может быть тривиальным (трехстороннее переключение или какая-то сетка), и физическое сохранение этих состояний - это одна из проблем, которую освещают многие ответы, гораздо лучше, чем я.
Моя главная задача состоит в том, как закодировать это сохраненное состояние, и кажется, что существует высокая вероятность того, что эта задача является дураком, поскольку биты достаточны для представления практических непрерывных данных, в зависимости от необходимой точности, продолжайте добавлять больше битов.
Истинно непрерывные данные невозможно хранить таким образом, но уравнения для их расчета, например,
Подсказкой и намёк более мелкие куски информации , чем немного. Обычно требуется несколько ключей, чтобы установить определенное значение бита. Инклинги хуже: независимо от того, сколько вы сложите, вы все равно не можете точно знать значение полученного бита.
Более серьезно, есть многозначные логики, где фундаментальная единица может иметь одно из n состояний, где n> 2. Вы можете считать, что эти единицы несут меньше информации, чем бит в смысле предыдущего абзаца, но из теории информации Точка зрения вы должны сказать, что они несут больше. Например, вам потребуется два бита для представления того же объема информации, который может нести одно значение в четырехзначной логике.
Оптимальной числовой базой является e , но, поскольку самый простой способ представления числа в цифровой электронике - это два состояния (высокое напряжение = 1, низкое напряжение = 0), было выбрано представление двоичных чисел.
@BenVoigt, а? Что такое нат ? :) Google рассказал мне некоторые странные вещи, которые не вписываются в тему.
BЈовић
@BenVoigt Может быть, вы имели в виду Nat (информация) ? Нат ... - это логарифмическая единица информации или энтропии, основанная на натуральных логарифмах и степенях е, а не на степенях логарифмов 2 и 2, которые определяют бит.
CVn
@ MichaelKjörling: Это точно.
Бен Фойгт
0
Существует меньшая возможная единица данных. Я не знаю официального названия для этого, давайте назовем это un.
Бит - это умное комбинированное слово для «Binary digIT», означающее, что у него есть два возможных состояния. Так что должна быть какая-то цифра только с одним возможным состоянием.
Посмотрим, что это значит. Это означает, что у вас будут только нули для работы.
Как бы вы посчитали? В любой системе x-base вы увеличиваете значение до тех пор, пока не исчерпаете цифры, а затем добавите цифру, чтобы сформировать число. Если у вас есть только одна цифра, у вас сразу кончатся цифры, поэтому:
Ноль = 0 Один = 00 Два = 000 и так далее
Это определенно более естественно: чем больше, тем больше! Он идеально подходит для любого количества вещей. Сколько картошки? 00000 Это четыре картошки. Подожди минутку ... это одно за другим. Если вам это не нравится, вы можете переопределить значение от 0 до единицы. Тогда это действительно естественно: никаких нулей нет, один ноль равен единице, два нуля равны двум, и так далее.
Это непрактично для твердотельной машины, хотя. Цифры должны быть физически размещены и удалены, и они плохо масштабируются.
Это на самом деле не квалифицируется как единица данных, так как вы в основном просто закодировали 0 как «не присутствует» и 1 как 0. Они по-прежнему биты.
DeadMG
Это не бинарный, это одинарный. Дело в том, что элемент данных имеет только одно состояние, а не два. Наличие или отсутствие не является состоянием, состояние элемента всегда одинаково, следовательно, это унарная цифра. Я в основном описываю систему меток.
Мартин Маат
-1
Я не могу находку окончательного английской ссылки, но, насколько я помню из теории информации класса бит является основной единицей информации. Немного информации - это информация, которую вы получаете после подбрасывания справедливой монеты (50% вероятности для каждой стороны). Все остальное можно свести к этому.
Даже если вы используете устройство с несколькими состояниями, оно всегда может быть уменьшено до битов.
Если вы определяете естественное, понимая, как работает мать-природа, наиболее естественным способом кодирования информации являются ДНК-подобные комбинации аденина, цитозина, гуанина и тимина.
Ответы:
Конечно, это возможно, как теоретически, так и практически.
Теоретически существует два класса альтернатив: цифровые системы счисления с основанием, отличным от 2 (фактически, десятичная система, поскольку мы знаем, что это одна из таких систем); и нецифровые системы счисления. Говоря математически, мы говорим о дискретных и непрерывных областях.
На практике оба варианта были изучены. Некоторые из ранних цифровых компьютеров (например, ENIAC) использовали десятичное кодирование, а не вездесущее двоичное кодирование; другие основания, например, троичные, должны быть такими же возможными (или неосуществимыми). Эзотерический язык программирования Malbolge основан на теоретическом троичном компьютере; в то время как в основном сатирические, нет технической причины, почему это не должно работать. Хранение и обработка в непрерывном домене исторически проводились на аналоговых компьютерах, где вы могли кодировать величины в виде частот и / или амплитуд колеблющихся сигналов, а затем выполнять вычисления, применяя всевозможные модуляции к этим сигналам. Сегодня квантовые вычисления вновь делают интересной теорию непрерывных ячеек памяти.
В любом случае, бит как теоретическая наименьшая единица информации все еще остается в силе, поскольку любая альтернатива может кодировать больше информации, чем одно да / нет, и никто еще не придумал меньшую теоретическую единицу (и я не ожидаю, что это произойдет в любое время скоро).
источник
double
Some of the early digital computers employed decimal encodings rather than the now ubiquitous binary encoding
- На самом деле, десятичные кодировки все еще используются сегодня; это называется BCD . BIOS в большинстве компьютеров использует его (для десятичных дат) , а также в большинстве дешевых калькуляторов, потому что он требует меньше схем (то есть дешевле), чтобы делать все в BCD, чем в двоичном и иметь двоично-десятичный преобразователь.Вы в основном описываете аналоговый сигнал, который используется в датчиках, но редко для внутренних вычислений. Проблема в том, что шум ухудшает качество, вам нужна очень точная калибровка контрольной точки, с которой трудно общаться, а передача - это проблема, потому что она теряет силу, чем дальше она движется.
Если вы заинтересованы в изучении аналоговых вычислений, большинство старшекурсников «Введение в электронику» предлагают вам такие вещи, как интеграторы операционных усилителей . Их достаточно легко построить даже без формальных инструкций.
Вы также можете хранить несколько цифровых состояний на одном узле. Например, вместо 0-2,5 вольт, равных нулю, и 2,5-5,0 вольт, равных единице, вы можете добавить третье состояние между ними. Это добавляет много сложности, и значительно увеличивает вашу восприимчивость к шуму.
источник
Они называются кубитами и используются в квантовых компьютерах. Вы найдете больше информации о них в записи википедии . Проводятся исследования, чтобы сделать такие компьютеры стабильными и экономически целесообразными.
источник
Вопрос точности
Одна из причин, по которой мы используем биты, заключается в том, что это помогает нам точно хранить и извлекать информацию.
Реальный мир является аналоговым, поэтому вся информация, которую компьютеры передают или хранят, в конечном итоге является аналоговой . Например, ток определенного напряжения на проводе, магнитный заряд определенной силы на диске или яма определенной глубины на лазерном диске.
Вопрос в том, насколько точно вы можете измерить эту аналоговую информацию ? Представьте, что ток на проводе можно интерпретировать как любое десятичное число, как показано ниже:
И т.д. Эта система позволила бы нам передавать много данных за несколько импульсов тока, верно? Но есть проблема: мы должны быть очень уверены, что такое напряжение. Если температура или магниты, или космические лучи, или что-то другое вызывают колебания, мы можем прочитать неправильное число. И чем точнее мы будем измерять, тем больше этот риск. Представьте, если разница в 1 милливольт была значительной!
Вместо этого мы обычно используем цифровую интерпретацию . Все, что за некоторым порогом, является правдой, а все под ложью. Таким образом, мы можем задать такие вопросы, как "Есть ли какой-либо ток вообще?" вместо " Точно, сколько там тока?"
Каждый отдельный бит может быть измерен с уверенностью, потому что мы должны быть только «в правильном поле». И используя много битов, мы все еще можем получить много информации.
источник
Есть и троичные компьютеры вместо бинарных. http://en.wikipedia.org/wiki/Ternary_computer
источник
Это может быть более естественным для нас, но есть конкретные причины, по которым двоичный код был выбран для цифровых схем и, следовательно, для языков программирования. Если у вас есть два состояния, вам нужно только различать две настройки напряжения, скажем, 0В и 5В. Для каждого дополнительного увеличения радиуса (базы) вам нужно будет еще больше разделить этот диапазон, получая значения, которые не различимы друг от друга. Вы могли бы увеличить диапазон напряжения, но у этого есть неприятная привычка плавления схем.
Если вы хотите изменить тип оборудования с цифровых схем, ваши варианты более разнообразны. Десятичные дроби раньше использовались в механических компьютерах, так как зубчатые колеса обладают гораздо большей жаростойкостью и намного более различимы, чем электронные заряды. Квантовые компьютеры, как указано в другом месте, имеют другие способы взаимодействия с вещами. Оптические компьютеры также могут выполнять то, с чем мы не сталкивались ранее, и магнитные компьютеры также возможны.
источник
Я думаю, что в настоящее время вы можете создавать элементы, которые могут содержать любое количество состояний или даже работать с аналоговыми данными. Хотя создание целой системы и запуск всех логических компонентов для получения полнофункциональной и программируемой архитектуры будет большой работой и финансовым риском для любой компании, которая решит эту задачу.
Я думаю, что ENIAC была последней архитектурой, которая использовала десятипозиционные кольцевые счетчики для хранения цифр. Хотя я могу ошибаться и не уверен, насколько это повлияло на другие части машины.
источник
Хранение можно рассматривать как передачу в будущее, все проблемы передачи с непрерывным (аналоговым) носителем будут применяться.
Хранение этих состояний может быть тривиальным (трехстороннее переключение или какая-то сетка), и физическое сохранение этих состояний - это одна из проблем, которую освещают многие ответы, гораздо лучше, чем я.
Моя главная задача состоит в том, как закодировать это сохраненное состояние, и кажется, что существует высокая вероятность того, что эта задача является дураком, поскольку биты достаточны для представления практических непрерывных данных, в зависимости от необходимой точности, продолжайте добавлять больше битов.
Истинно непрерывные данные невозможно хранить таким образом, но уравнения для их расчета, например,
могут быть сохранены.
источник
Подсказкой и намёк более мелкие куски информации , чем немного. Обычно требуется несколько ключей, чтобы установить определенное значение бита. Инклинги хуже: независимо от того, сколько вы сложите, вы все равно не можете точно знать значение полученного бита.
Более серьезно, есть многозначные логики, где фундаментальная единица может иметь одно из n состояний, где n> 2. Вы можете считать, что эти единицы несут меньше информации, чем бит в смысле предыдущего абзаца, но из теории информации Точка зрения вы должны сказать, что они несут больше. Например, вам потребуется два бита для представления того же объема информации, который может нести одно значение в четырехзначной логике.
источник
Оптимальной числовой базой является e , но, поскольку самый простой способ представления числа в цифровой электронике - это два состояния (высокое напряжение = 1, низкое напряжение = 0), было выбрано представление двоичных чисел.
источник
e
без упоминания о нац ? Стыдно.Существует меньшая возможная единица данных. Я не знаю официального названия для этого, давайте назовем это un.
Бит - это умное комбинированное слово для «Binary digIT», означающее, что у него есть два возможных состояния. Так что должна быть какая-то цифра только с одним возможным состоянием.
Посмотрим, что это значит. Это означает, что у вас будут только нули для работы.
Как бы вы посчитали? В любой системе x-base вы увеличиваете значение до тех пор, пока не исчерпаете цифры, а затем добавите цифру, чтобы сформировать число. Если у вас есть только одна цифра, у вас сразу кончатся цифры, поэтому:
Ноль = 0 Один = 00 Два = 000 и так далее
Это определенно более естественно: чем больше, тем больше! Он идеально подходит для любого количества вещей. Сколько картошки? 00000 Это четыре картошки. Подожди минутку ... это одно за другим. Если вам это не нравится, вы можете переопределить значение от 0 до единицы. Тогда это действительно естественно: никаких нулей нет, один ноль равен единице, два нуля равны двум, и так далее.
Это непрактично для твердотельной машины, хотя. Цифры должны быть физически размещены и удалены, и они плохо масштабируются.
источник
Я не могу находку окончательного английской ссылки, но, насколько я помню из теории информации класса бит является основной единицей информации. Немного информации - это информация, которую вы получаете после подбрасывания справедливой монеты (50% вероятности для каждой стороны). Все остальное можно свести к этому.
Даже если вы используете устройство с несколькими состояниями, оно всегда может быть уменьшено до битов.
источник
Если вы определяете естественное, понимая, как работает мать-природа, наиболее естественным способом кодирования информации являются ДНК-подобные комбинации аденина, цитозина, гуанина и тимина.
источник