Почему 0 и 1 в компьютере

Обновлено: 21.11.2024

Почему компьютеры используют только 0 и 1? Разве добавление других чисел, таких как 2 или 3, не ускорит работу компьютеров? Кроме того, 2 и 3 можно использовать для сокращения длины целых чисел в битах (2 и 3 можно использовать для завершения целого числа, так что для числа 1 требуется только один два бита..

Почему двоичный компьютер предпочтительнее?

7 ответов 7

Это не ускорило бы их. Теперь это легко: сделать базовый логический элемент, такой как NAND, логические входы либо подтягивают выход к Vdd, либо к земле. Если вы будете использовать промежуточные уровни, вам понадобятся полевые транзисторы для перехода на такие уровни, как Vdd/2 или Vdd/4. Это потребовало бы больше энергии и потребовало бы более точно работающих компонентов, которым потребовалось бы больше времени для установления окончательного уровня. Если вы поместите больше значений в один блок данных, требуемая точность увеличится, как и время установления. Двоичная система, используемая сейчас, просто сильно подталкивает полевой транзистор к Vcc.

В

exscape упоминается помехозащищенность, а именно к ней относится точность: насколько сигнал может отклоняться от номинального. В двоичной системе это может быть почти 50 % или более 0,5 В для процессора с напряжением 1,2 В. Если вы используете 4 разных уровня, между которыми всего 300 мВ, то помехоустойчивость не может быть лучше 150 мВ, возможно 100 мВ.

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

\$\begingroup\$ А разве помехоустойчивость не является одной из главных причин? По крайней мере, это, вероятно, основная причина, по которой цифра лучше аналоговой. \$\конечная группа\$

\$\begingroup\$ Почему это не ускоряет их? С более чем двумя цифрами мы могли бы хранить данные в меньшем пространстве, например. четыре в двоичном коде = 100 -- требуется 3 физических местоположения -- в троичном формате четыре = 11 -- требуется два физических местоположения. Таким образом, в троичной системе процессору пришлось бы обрабатывать меньшее количество регистров, что сделало бы его относительно быстрее. \$\конечная группа\$

Хранение и вычисления на двоичном уровне очень дешевы, малы и быстры. Этот текст может быть слишком упрощенным, но я думаю, что он близок к сути:

Чтение двоичной ячейки памяти состоит всего из одного простого компаратора, выполняющего свою работу: высокий/низкий. Вычисления сводятся к очень простым таблицам из четырех входных комбинаций (00, 01, 10, 11) и двухбитных выходных (0 и 1) в основном.

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

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

В совокупности все это означает, что гораздо эффективнее разместить на кристалле миллиарды двоичных элементов, чем полмиллиарда четвертичных элементов.

Обойдите свой дом или, если у вас нет таких переключателей, сходите в хозяйственный магазин, посмотрите, легко или сложно его поставить, и оставьте переключатель в середине включенным или выключенным, добавив третье состояние. , а теперь попробуй посмотреть, не сможешь ли ты добиться высоких должностей. Другой пример: возьмите банку из-под кока-колы, или бутылку из-под пива, или любой другой предмет цилиндрической формы, положите его на бок, а затем сбалансируйте сверху шарик. Насколько легко, быстро и стабильно получается этот сбалансированный шарик?

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

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

<р>1. Двоичная система счисления с основанием 2, изобретенная Готфридом Лейбницем, состоит только из двух чисел или цифр: 0 (ноль) и 1 (единица). Эта система нумерации является основой для всего двоичного кода, который используется для записи цифровых данных, таких как инструкции компьютерного процессора, используемые каждый день.

Как работает двоичный файл?

0 и 1 в двоичном коде означают ВЫКЛ или ВКЛ соответственно. В транзисторе «0» означает отсутствие потока электричества, а «1» означает, что электричеству разрешено течь.Таким образом, числа физически представлены внутри вычислительного устройства, что позволяет выполнять вычисления. Эта концепция более подробно объясняется в нашем разделе о том, как читать двоичные числа.

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

Двоичный язык по-прежнему является основным языком для компьютеров и используется в электронике и компьютерном оборудовании по следующим причинам.

  • Это простой и элегантный дизайн.
  • Метод Binary 0 и 1 позволяет быстро определить состояние электрического сигнала: выключено (ложно) или включено (истинно).
  • Только два состояния, расположенные далеко друг от друга в электрическом сигнале, делают его менее восприимчивым к электрическим помехам.
  • Положительные и отрицательные полюса магнитных носителей быстро преобразуются в бинарные.
  • Двоичный код — наиболее эффективный способ управления логическими схемами.

Как читать двоичные числа

На следующей диаграмме показано двоичное число 01101000. Каждый столбец представляет собой число два, возведенное в степень, причем значение этой степени увеличивается на единицу при перемещении по каждой из восьми позиций. Чтобы получить итог этого примера, прочитайте диаграмму справа налево и прибавьте значение каждого столбца к предыдущему столбцу: (8+32+64) = 104. Как видите, мы не подсчитайте биты с 0, потому что они «выключены».

Показатель степени: 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0
Значение: 128 64 32 16 8< /td> 4 2 1
ВКЛ/ВЫКЛ: 0< /td> 1 1 0 1 0 0 0

< td>16
Значение: 128 64 32 8 4 2 1
ON /OFF: 1 1 1 1 1 1 1 1

Счет на компьютере обычно начинается с "0" вместо "1". Следовательно, подсчет всех битов равен 255, но если начать с 0, получится 256.

Когда у вас есть восемь бит, это равно одному байту. Если вы возьмете двоичный код из первого примера (01101000), что в сумме составляет «104», и поместите его в ASCII, получится строчная буква «h». Чтобы написать слово «привет», вам нужно добавить двоичный код для буквы «i», то есть 01101001. Соединив эти два кода вместе, мы получим 0110100001101001 или 104 и 105, что означает «привет». Дополнительную информацию о преобразовании двоичного кода в ASCII можно найти по следующей ссылке.

Как добавить в двоичный файл

Сложение в двоичном формате очень похоже на сложение в десятичном формате. Например, если у нас есть двоичный файл 01101011 (107) и мы хотим добавить 10000111 (135), мы должны выполнить следующие шаги.


+
0 1 1 0 1 0 1 1
1 0 0 0 0 1 1< /td> 1

Начиная с правой стороны, мы добавляем 1+1, чтобы получить "2". Поскольку в двоичном формате нет числа два, мы будем использовать двоичное значение "10" и перенести "1" в следующий столбец.

В следующем столбце мы добавили бы "1", которую мы перенесли в следующий столбец, и добавили бы 1+1+1, чтобы получить "3". В двоичном формате нет числа "3", поэтому мы используем "11" (3 в двоичном формате), ставим 1 и переносим 1 в следующий столбец.

Затем мы снова добавим перенесенную "1" и добавим 1+0+1, чтобы получить "10" (2 в двоичном формате).

Мы повторяем этот же процесс для всех восьми цифр, чтобы получить следующий результат 11110010 (242).

< td>0
1 1 1 1 0 1 0

Что такое сдвиг влево и вправо?

Сдвиг влево — это когда каждый бит двоичного числа сдвигается (перемещается) влево, чтобы удвоить двоичное значение или умножить его на два. Например, двоичное число «00000011» равно трем, а при сдвиге влево оно становится «00000110», что равно шести. Другой пример: двоичное число "00111110" равно 62, а сдвиг битов влево дает "01111100" или 124.

Сдвиг вправо похож на сдвиг влево, за исключением того, что биты сдвигаются вправо, чтобы разделить число на два. Например, двоичное число "00001010" равно десяти, а при сдвиге вправо оно становится "00000101" или пятью.

Что такое префикс "0b"?

Чтобы избежать путаницы, при написании двоичного числа оно может иметь префикс "0b" (ноль и b). Например, 0b0100 представляет "0100" в двоичном формате. Используя этот префикс, читатель знает, что это не "100" в десятичном формате.

Двоичный юмор

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

Преобразовать текст в двоичный формат

Следующий инструмент преобразует любой текст в двоичный формат.

Дополнительная информация

<р>2. Во время сеанса FTP двоичный файл — это команда, которая переключает режим передачи файлов на двоичный. Для получения информации о двоичных и других командах FTP см.: Как использовать FTP из командной строки?

На стене в крыле информатики висит серебряная табличка. Вот его изображение:

Так что же со всеми 1 и 0? Это просто для галочки, или это действительно что-то значит?

Я не говорю о "что-то значит" в философском смысле. Действительно ли эти 1 и 0 превращаются в действия и цели с нашей стороны, это тема для другого поста. Вместо этого в этой статье я имею в виду нечто гораздо более прозаичное, гораздо более запутанное. Что означают 1 и 0 в нашем повседневном языке и почему компьютеры вообще разговаривают на этом странно ограниченном языке?

Давайте сначала рассмотрим второй вопрос. Почему компьютеры говорят единицами и нулями? Этот язык единиц и нулей называется двоичным. Компьютеры говорят в двоичном формате из-за того, как они построены. Компьютер — это не что иное, как огромный набор переключателей. На этих странно выгравированных платах внутри компьютера есть миллионы наноскопически маленьких электронных переключателей. Выключатель, если он не сломан, может быть включен или выключен, замкнут или разомкнут. Переключатель в положении «включено» или «замкнут» пропускает через себя электрический сигнал, в то время как переключатель в положении «выключено» или «разомкнут» блокирует этот сигнал. Ученые-компьютерщики обозначают переключатель «вкл.» цифрой 1 и переключатель «выкл.» цифрой 0.

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

Давайте вернемся к обсуждаемому вопросу: что на самом деле означают эти 1 и 0? Компьютеры не работают напрямую с текстом. Вместо этого они получают значение только из чисел. Для построения одного числа требуется 8 таких единиц и нулей (другими словами, 8 битов). Например, рассмотрим этот набор из 8 битов:

0 1 0 0 1 0 0 1

Вы заметите, что это первая коллекция из 8 битов на нашей табличке, показанная на картинке. Этот набор из 8 битов называется байтом. В байте каждый бит имеет связанное с ним значение. Это ничем не отличается от того, с чем вы привыкли работать в своей повседневной работе с числами. Например, если я скажу, что должен вам 1234 доллара, во-первых, будьте уверены, что я никогда вам не заплачу, а во-вторых, подумайте, что это значит. Каждая из этих цифр представляет собой степень числа 10. Крайняя правая цифра является наименее значимой, и это количество единиц. Вторая цифра справа представляет количество десятков. Третья справа цифра обозначает количество сотен. Наконец, крайняя левая цифра представляет число тысяч.

В нашем примере на месте единиц стоит 4, на месте десятков — 3, на месте сотен — 2, а на месте тысяч — 1. Таким образом, общее значение этого числа равно

1 * 1000 + 2 * 100 + 3 * 10 4 * 1 = 1234

Это точно такая же интерпретация, которую мы применяем к битам в байте, чтобы определить значение, которое он представляет. Единственная разница состоит в том, что вместо того, чтобы каждая цифра представляла, сколько у нас имеется чисел определенной степени 10, каждый бит в байте представляет, сколько у нас имеется чисел определенной степени 2. Крайний правый бит представляет, сколько у нас есть возведенных в степень 0 (т. е. сколько единиц). Второй бит справа представляет, сколько двойок в степени 1 (т. е. сколько двойок) у нас есть. Бит, третий справа, показывает, сколько степеней двойки в степени 2 (т. е. сколько четверок) у нас есть. Четвертый-к…

Эй, заткнись, ботаник. Я умираю здесь.

Хорошо. Спасибо, что вытащил меня из этого. Вернемся к нашему примеру.Рассмотрим 0 1 0 0 1 0 0 1 и работаем с каждым битом, начиная с крайнего правого.

У нас есть 1 на месте 1.

У нас есть 0 вместо 2.

У нас есть 0 вместо 4.

У нас есть 1 вместо 8.

У нас есть 0 вместо 16.

У нас есть 0 вместо 32

У нас есть 1 вместо 64.

У нас есть 0 вместо 128.

Откуда взялись числа 1, 2, 4, 8, 16, 32, 64 и 128? Каждое из этих чисел является степенью двойки, что, как мы сказали, представляет каждый бит в байте. Каждый бит представляет одну из этих степеней двойки, и либо эта степень двойки есть в общем числе, которое представляет байт, либо ее нет. Другими словами, либо переключатель, соответствующий этому биту, замкнут, либо разомкнут. Заметили идеальное соответствие между данными и структурой? Это значительно упрощает интерпретацию и представление данных.

Итак, сложим, что имеем: 1 + 0 + 0 + 8 + 0 + 0 + 64 + 0 = 73.

Эврика, первый байт таблички миссии нашего отдела — 73! 73? Я думал, что ответ на все вопросы космического значения — 42. Что не так с 73?

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

Проверь себя. Попробуйте перевести остальную часть сообщения и посмотрите, сможете ли вы понять оставшуюся часть. Вот подсказка. В нем не говорится: «Футбол Иллинойса в этом году не проиграет». Я оптимист, но от галлюциногенов давно отказался.

Энтони Хеддингс

Энтони Хеддингс
Писатель

Энтони Хеддингс (Anthony Heddings) – штатный облачный инженер LifeSavvy Media, технический писатель, программист и эксперт по платформе Amazon AWS. Он написал сотни статей для How-To Geek и CloudSavvy IT, которые были прочитаны миллионы раз. Подробнее.

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

Двоичная система счисления – это система счисления с основанием 2. Основание 2 означает, что есть только две цифры — 1 и 0 — которые соответствуют состояниям включения и выключения, которые может понять ваш компьютер. Вы, вероятно, знакомы с основанием 10 — десятичной системой. В десятичном числе используются десять цифр в диапазоне от 0 до 9, а затем они переходят друг в друга, образуя двузначные числа, где каждая цифра в десять раз больше предыдущей (1, 10, 100 и т. д.). Двоичный код аналогичен: каждая цифра стоит в два раза больше, чем предыдущая.

Подсчет в двоичном формате

В двоичном формате первая цифра равна 1 в десятичном. Вторая цифра соответствует 2, третья — 4, четвертая — 8 и так далее, каждый раз удваивая число. Сложив все это, вы получите десятичное число. Итак,

С учетом 0 это дает нам 16 возможных значений для четырех двоичных битов. Перейдите к 8 битам, и у вас будет 256 возможных значений. Это занимает гораздо больше места для представления, так как четыре десятичных знака дают нам 10 000 возможных значений. Может показаться, что мы пытаемся заново изобретать нашу систему счета только для того, чтобы сделать ее более неуклюжей, но компьютеры понимают двоичную систему гораздо лучше, чем десятичную. Конечно, двоичный файл занимает больше места, но нас сдерживает аппаратное обеспечение. А для некоторых вещей, таких как логическая обработка, двоичный код лучше, чем десятичный.

Есть еще одна базовая система, которая также используется в программировании: шестнадцатеричная. Хотя компьютеры не используют шестнадцатеричный формат, программисты используют его для представления двоичных адресов в удобочитаемом формате при написании кода. Это связано с тем, что две цифры в шестнадцатеричном формате могут представлять собой целый байт, восемь цифр в двоичном формате. В шестнадцатеричном формате используются числа от 0 до 9, как и в десятичном, а также буквы от A до F для обозначения дополнительных шести цифр.

Итак, почему компьютеры используют двоичные файлы?

Короткий ответ: оборудование и законы физики. Каждое число в вашем компьютере — это электрический сигнал, а на заре вычислительной техники электрические сигналы было гораздо сложнее измерить и очень точно контролировать. Было бы разумнее различать только состояние «включено», представленное отрицательным зарядом, и состояние «выключено», представленное положительным зарядом. Для тех, кто не знает, почему «выкл» представлен положительным зарядом, это потому, что электроны имеют отрицательный заряд — чем больше электронов, тем больше ток с отрицательным зарядом.

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

По сути, он позволяет току течь от истока к стоку только в том случае, если в затворе есть ток. Это формирует двоичный переключатель. Производители могут создавать эти транзисторы невероятно маленькими — вплоть до 5 нанометров, или размером с две нити ДНК. Именно так работают современные процессоры, и даже они могут страдать от проблем с различением между включенным и выключенным состояниями (хотя это в основном из-за их нереального молекулярного размера, подверженного странностям квантовой механики).

Но почему только основание 2?

Итак, вы можете подумать: «Почему только 0 и 1? Не могли бы вы просто добавить еще одну цифру?» Хотя отчасти это сводится к традициям построения компьютеров, добавление еще одной цифры означало бы, что нам придется различать разные уровни тока — не только «выключено» и «включено», но и такие состояния, как «немного включено». бит» и «на лоте».

Проблема здесь в том, что если вы хотите использовать несколько уровней напряжения, вам нужен способ легко выполнять вычисления с ними, а аппаратное обеспечение для этого не может заменить двоичные вычисления. Он действительно существует; это называется троичным компьютером, и он существует с 1950-х годов, но практически на этом его развитие остановилось. Тернарная логика намного эффективнее двоичной, но на данный момент ни у кого нет эффективной замены двоичному транзистору, или, по крайней мере, не было проделано никакой работы по их разработке в таких же крошечных масштабах, как двоичная.

Причина, по которой мы не можем использовать троичную логику, заключается в том, как транзисторы уложены друг на друга в компьютере — так называемые вентили — и как они используются для выполнения математических операций. Шлюзы принимают два входа, выполняют над ними операцию и возвращают один выход.

Это подводит нас к длинному ответу: двоичная математика намного проще для компьютера, чем что-либо еще. Булева логика легко сопоставляется с бинарными системами, где True и False представлены как on и off. Гейты в вашем компьютере работают по логической логике: они принимают два входа и выполняют над ними операцию, такую ​​как И, ИЛИ, XOR и так далее. Два входа просты в управлении. Если бы вы изобразили ответы для каждого возможного входа, у вас была бы так называемая таблица истинности:

Двоичная таблица истинности, работающая на основе булевой логики, будет иметь четыре возможных выхода для каждой основной операции. Но поскольку троичные вентили принимают три входа, троичная таблица истинности будет иметь 9 или более. В то время как двоичная система имеет 16 возможных операторов (2 ^ 2 ^ 2), троичная система будет иметь 19 683 (3 ^ 3 ^ 3). Масштабирование становится проблемой, потому что, хотя троичный код более эффективен, он также экспоненциально сложнее.

Кто знает? В будущем мы можем начать видеть, как троичные компьютеры становятся чем-то особенным, поскольку мы раздвигаем границы двоичного кода до молекулярного уровня. Однако на данный момент мир будет продолжать работать на двоичном коде.

  • › Что такое вычисления на GPU и для чего они нужны?
  • › HTG объясняет: как на самом деле работает ЦП?
  • › Что такое процессор и для чего он нужен?
  • › Что означает «Запись компакт-диска»?
  • › Является ли SSD Wear проблемой для PlayStation 5?
  • › Как использовать команду cut в Linux
  • › Matter — это долгожданный стандарт умного дома
  • › Почему СМС должен умереть

Читайте также: