Есть ли альтернатива битам как наименьшей единице данных? Что-то, что не будет только 0 или 1, но на самом деле содержит много возможных состояний между ними? Разве не было бы более естественным хранить такие поплавки?
Есть ли альтернатива битам как наименьшей единице данных? Что-то, что не будет только 0 или 1, но на самом деле содержит много возможных состояний между ними? Разве не было бы более естественным хранить такие поплавки?
Ответы:
Конечно, это возможно, как теоретически, так и практически.
Теоретически существует два класса альтернатив: цифровые системы счисления с основанием, отличным от 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
Троичный компьютер (также называемый Trinary компьютер ) представляет собой компьютер , который использует троичной логики (три возможных значения) вместо более распространенной двоичной логики (два возможных значения) в своих расчетах ...
Это может быть более естественным для нас, но есть конкретные причины, по которым двоичный код был выбран для цифровых схем и, следовательно, для языков программирования. Если у вас есть два состояния, вам нужно только различать две настройки напряжения, скажем, 0В и 5В. Для каждого дополнительного увеличения радиуса (базы) вам нужно будет еще больше разделить этот диапазон, получая значения, которые не различимы друг от друга. Вы могли бы увеличить диапазон напряжения, но у этого есть неприятная привычка плавления схем.
Если вы хотите изменить тип оборудования с цифровых схем, ваши варианты более разнообразны. Десятичные дроби раньше использовались в механических компьютерах, так как зубчатые колеса обладают гораздо большей жаростойкостью и намного более различимы, чем электронные заряды. Квантовые компьютеры, как указано в другом месте, имеют другие способы взаимодействия с вещами. Оптические компьютеры также могут выполнять то, с чем мы не сталкивались ранее, и магнитные компьютеры также возможны.
Я думаю, что в настоящее время вы можете создавать элементы, которые могут содержать любое количество состояний или даже работать с аналоговыми данными. Хотя создание целой системы и запуск всех логических компонентов для получения полнофункциональной и программируемой архитектуры будет большой работой и финансовым риском для любой компании, которая решит эту задачу.
Я думаю, что ENIAC была последней архитектурой, которая использовала десятипозиционные кольцевые счетчики для хранения цифр. Хотя я могу ошибаться и не уверен, насколько это повлияло на другие части машины.
Хранение можно рассматривать как передачу в будущее, все проблемы передачи с непрерывным (аналоговым) носителем будут применяться.
Хранение этих состояний может быть тривиальным (трехстороннее переключение или какая-то сетка), и физическое сохранение этих состояний - это одна из проблем, которую освещают многие ответы, гораздо лучше, чем я.
Моя главная задача состоит в том, как закодировать это сохраненное состояние, и кажется, что существует высокая вероятность того, что эта задача является дураком, поскольку биты достаточны для представления практических непрерывных данных, в зависимости от необходимой точности, продолжайте добавлять больше битов.
Истинно непрерывные данные невозможно хранить таким образом, но уравнения для их расчета, например,
1/3
могут быть сохранены.
Подсказкой и намёк более мелкие куски информации , чем немного. Обычно требуется несколько ключей, чтобы установить определенное значение бита. Инклинги хуже: независимо от того, сколько вы сложите, вы все равно не можете точно знать значение полученного бита.
Более серьезно, есть многозначные логики, где фундаментальная единица может иметь одно из n состояний, где n> 2. Вы можете считать, что эти единицы несут меньше информации, чем бит в смысле предыдущего абзаца, но из теории информации Точка зрения вы должны сказать, что они несут больше. Например, вам потребуется два бита для представления того же объема информации, который может нести одно значение в четырехзначной логике.
Оптимальной числовой базой является e , но, поскольку самый простой способ представления числа в цифровой электронике - это два состояния (высокое напряжение = 1, низкое напряжение = 0), было выбрано представление двоичных чисел.
e
без упоминания о нац ? Стыдно.
Существует меньшая возможная единица данных. Я не знаю официального названия для этого, давайте назовем это un.
Бит - это умное комбинированное слово для «Binary digIT», означающее, что у него есть два возможных состояния. Так что должна быть какая-то цифра только с одним возможным состоянием.
Посмотрим, что это значит. Это означает, что у вас будут только нули для работы.
Как бы вы посчитали? В любой системе x-base вы увеличиваете значение до тех пор, пока не исчерпаете цифры, а затем добавите цифру, чтобы сформировать число. Если у вас есть только одна цифра, у вас сразу кончатся цифры, поэтому:
Ноль = 0 Один = 00 Два = 000 и так далее
Это определенно более естественно: чем больше, тем больше! Он идеально подходит для любого количества вещей. Сколько картошки? 00000 Это четыре картошки. Подожди минутку ... это одно за другим. Если вам это не нравится, вы можете переопределить значение от 0 до единицы. Тогда это действительно естественно: никаких нулей нет, один ноль равен единице, два нуля равны двум, и так далее.
Это непрактично для твердотельной машины, хотя. Цифры должны быть физически размещены и удалены, и они плохо масштабируются.
Я не могу находку окончательного английской ссылки, но, насколько я помню из теории информации класса бит является основной единицей информации. Немного информации - это информация, которую вы получаете после подбрасывания справедливой монеты (50% вероятности для каждой стороны). Все остальное можно свести к этому.
Даже если вы используете устройство с несколькими состояниями, оно всегда может быть уменьшено до битов.