Почему компьютеры работают в двоичном формате? - PullRequest
16 голосов
/ 02 марта 2011

Я провел некоторые поиски, но не нашел действительно удовлетворительного ответа.Как разработчик, я хочу потратить необходимое время на понимание этого, поэтому я ищу полное объяснение этого и не стесняйтесь давать любые полезные ссылки.

Спасибо.

Ответы [ 10 ]

18 голосов
/ 02 марта 2011

Я бы порекомендовал купить эту книгу Эндрю С. Таненбаума . Он разработал один из предшественников Linux под названием Minix. Я использовал Структурированная компьютерная организация как часть моего университетского курса.

Почему компьютеры используют двоичные файлы, это не просто вопрос переключения контекста.

Относительно опорного напряжения сказать 3v. + 1v (4v) = true или 1 и -1v (2v) = false или 0.

Это также связано с наиболее эффективным методом создания управляющих или логических схем . Это связано со стоимостью реализации. Сколько стоит построить схемы, которые работают с двоичным кодом, по сравнению со схемами, которые работают с десятичной или аналоговой , см. Этот ответ .

Если вы сравните, сколько миллиардов бинарных цепных транзисторов устанавливаются на современный процессор. Стоимость выполнения этого, скажем, десятичной (или аналоговой) системы возрастает экспоненциально для каждой цифры, которую вы хотите добавить, поскольку теперь вам нужно добавить гораздо больше управляющих схем.

Если вы хотите понять некоторые из наиболее важных способствующих компонентов, которые помогли сделать бинарный стандарт стандартом логики и управления цепями, прочитайте и поймите следующие темы из Википедии. Это займет около 4 часов, чтобы прочитать наиболее важные темы, которые касаются некоторых из электротехники, используемой для создания цепей.

Я попытался дополнить этот список понятий необходимостью понять, как работают фактические переключатели и почему они используются. А также почему Binary Arithmetic является такой эффективной формой вычислений в аппаратном обеспечении.

  • Типы транзисторов Понять типы транзисторов pnp и npn , чтобы понять, как работает фактическая схема, которая образует переключатели. Эти схемы очень дешевы в изготовлении и могут быть уменьшены до мельчайших (нанометровых) размеров
  • Логические схемы. Если вы понимаете основные логические схемы, вы поймете, как фактические типы транзисторов используются для их реализации. Они относятся к некоторым программным конструкциям, таким как "& &&" "или ||" и "если ветвь" конструирует.
  • DigitalCircuitry имеет полный раздел использования недостатков, сравнивая аналоговый и цифровые схемы
  • Логический вентиль NAND важен, поскольку все другие логические логические схемы могут быть реализованы с использованием только этого логического вентиля. Упрощение производственного процесса, поскольку можно упростить сложность оборудования, используемого для создания цепей.
  • Схемы сумматора Чтобы понять, как выполняется базовое сложение с использованием логических элементов.
  • Twos Complement Это очень помогает полностью понять представление чисел в реальных процессорах. Также очень дешево реализовать этот тип арифметики в CPU, так как для этого требуется меньше транзисторов. Например, простая схема сложения - это все, что нужно для сложения и вычитания. Если вы добавите отрицательное число, вы получите правильный ответ, то есть +7 + (-4) = +3. Это также помогает понять целочисленное переполнение
  • Binary_number
  • Это одни из наиболее часто используемых цирков для управления другими цепями. Они управляют, когда цепи включены и выключены. Декодер Кодер Как (если или ветвь) реализована логика условий.
  • Мультиплексор Основа для маршрутизации. В CPU, BUS и в сети. Одна из самых распространенных логических схем в большинстве цифровых устройств.

Теперь о некоторых жестких ядрах. C. и C ++ используются для написания драйверов устройств , которые взаимодействуют с реальным оборудованием. Если вы действительно хотите узнать, как работают определенные устройства, ваш процессор и / или внешние устройства , изучите Ассемблер . Вы начнете видеть, как можно отключить устройство, установив определенный регистр устройства на определенное значение, которое будет считываться логической схемой для изменения состояния устройств. Например, вы поймете, почему (0101) base2 = 5 (двоичные данные) будет направлять определенный путь через схемы для включения и выключения устройства.

14 голосов
/ 02 марта 2011

Компьютеры могли бы быть созданы для работы даже с десятичными числами, но с инженерной точки зрения гораздо безопаснее различать только два состояния.

Напряжение значения 1 (+ 5 В) является только теоретическим значением, в реальной жизни оно всегда немного отличается. Если бы они делали компьютеры с десятичными числами, невозможно было бы определить, равно ли + 4,75 В 9 или 10.

2 голосов
/ 27 апреля 2011

Наткнулся на этот вопрос.Я рекомендую две книги, в которых верно рассматривается вопрос:
Взгляд на компьютерную электронику: вещи, которые вы должны знать - от Caleb Tennis
CODE: скрытый язык аппаратного и программного обеспечения компьютеров -Чарльз Петцольд

И если вы действительно хотите понять , как компьютеры работают , тогда возьмите:
Элементы вычислительных систем: Создание современного компьютера из первых принципов
- По Ноаму Нисану и Шимону Шокену

2 голосов
/ 02 марта 2011

Это связано с тем, как работают логические элементы: есть логический выход (1), если управляющее напряжение превышает определенный порог;нет логического вывода (0), если нет.

Но, вероятно, гораздо важнее:

Возможно, когда-то компьютеры не будут работать в двоичном формате, когда возникают квантовые машины (или другие подобные вещи,что, возможно, будет стимулировать более сложные представления государства). Но поскольку двоичные значения являются простейшим возможным представлением любого (более сложного) состояния , даже в «квантовые времена», вероятно, было бы наиболее целесообразным остаться с компьютерами, работающими в двоичном формате (абстрагируясь от других физических представлений, таких как троичные)или около того, если дано).

1 голос
/ 02 марта 2011

Компьютеры используют электричество как средство передачи информации.И самый простой способ использовать электричество в качестве информации - включить или выключить (1 или 0).

Конечно, вы можете использовать другое напряжение для представления другого числа, но электронные компоненты сделать это действительно сложно.

Также важно отметить, что умение писать и читать 1 и 0 достаточно для вычисления любого вычисления, это называется Полнота Тьюринга , поэтому нет необходимости находить более сложныесистемы, допускающие что-то еще, кроме двоичного

(Ладно, если быть точным, полнота по Тьюрингу может быть достигнута только с бесконечной памятью, но здесь это на самом деле не актуально.)

0 голосов
/ 14 июля 2016

Что касается компьютеров, мы всегда работаем с наименьшими сложностями, которые помогают нам ускорить вычисления. Так что здесь, если мы видим, двоичный файл является наименее сложным из них всех.

Рассмотрим число 1000 здесь,

Для унарных символов: - символы ввода {0} Количество цифр для обозначения 1000: - 1000, Сложность: - 1000 * 1 = 1000

Для двоичного кода: - символы ввода {0,1} Количество цифр для обозначения 1000: - 10, Сложность: - 10 * 2 = 20

Для троичного: - Входные символы {0,1,2} Количество цифр для обозначения 1000: - 7, Сложность: - 7 * 3 = 21

Для десятичного числа: - Входные символы {0,1,2 ... 9} Количество цифр для обозначения 1000: - 4, Сложность: - 4 * 10 = 40

Таким образом, мы видим, что двоичный файл имеет наименьшую сложность.

0 голосов
/ 02 марта 2011

Компьютеры в основном работают на электрических сигналах; как тупая машина, она может понимать только «высоко» и «низко». Высокий + 5В, а низкий 0В. (V-вольт). Таким образом, 1 в двоичном представляет высокий или «на». 0 представляет «низкий» или «выключен». Итак, двоичный файл необходим, чтобы компьютер что-то понял.

0 голосов
/ 02 марта 2011

Хорошо ... Я выскажу вам свое мнение по этому поводу, но сначала необходимо сказать, что я далек от того, чтобы быть экспертом, поэтому внимательно примите мой ответ.

В нижней части всего этого оборудования, затворов и транзисторов, компьютера. Это уже не цепь. В каждой части цепи электрические импульсы могут течь ... или не течь (это упрощенная версия, см. Комментарий paxdiablo). 2 состояния. Эти два состояния могут быть представлены 0 или 1. И это двоично!

Фактически, математические вычисления могут быть сделаны на каждой базе, единственная причина, по которой человек использует базу-10, состоит в том, что у нас (используется) 10 пальцев, поэтому мы легко понимаем их. Цифровые системы имеют два состояния, поэтому наилучшим выбором для них является base-2.

0 голосов
/ 02 марта 2011

Потому что компьютеры - это конечные автоматы, и они понимают в основном два состояния. То есть включается и выключается и это касается электричества. Это главная причина.

Кроме того, как еще вы могли бы найти футболки, говорящие о том, что есть 10 типов людей, тех, кто понимает двоичный код, и тех, кто не понимает? :)

0 голосов
/ 02 марта 2011

Ну, я думаю, вам нужно учитывать IC внутри ПК, каждая IC имеет миллионы Gates, в основном NANDS или NORS, и каждое вычисление является либо истинным, либо ложным, то есть 0 или 1 соответственно, и, таким образом, двоичного числа будет достаточно. Надеюсь, это понятно: -)

...