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

Обновлено: 06.07.2024

Двоичная система счисления (0 и 1) часто ассоциируется с компьютерами. Но почему это так? Почему компьютеры не могут просто использовать базу 10 вместо преобразования в двоичный файл и обратно? Разве не эффективнее использовать более высокую базу, поскольку двоичное представление (база 2) использует больше "пробелов"? Ответ довольно прост.

Что такое "цифровой"?

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

Термин "двоичный" подразумевает "два". Таким образом, двоичная система счисления – это система чисел, основанная на двух возможных цифрах - 0 и 1. Каждая двоичная цифра, или "бит", представляет собой 0 или 1, который непосредственно соответствует одному "переключателю" в цепи. Добавьте достаточно этих "переключателей" вместе, и вы можете представить больше чисел. Таким образом, вместо 1 цифры, вы в конечном итоге с 8, чтобы сделать байт. (Байт-основная единица хранения, просто определяется как 8 бит; известные килобайты, мегабайты и гигабайты являются производными от байта, и каждый из них в 1,024 раза больше другого. Существует 1024-кратная разница в отличие от 1000-кратной разницы, потому что 1024 - это степень 2, а 1000 - нет.)

Двоичный использует больше памяти, чем десятичный?

На первый взгляд кажется, что двоичное представление числа 10010110 занимает больше места, чем его десятичное (основание 10) представление 150. В конце концов, первое - это 8 цифр, а второе - 3 цифры. Однако это недопустимый аргумент в контексте отображения чисел на экране, так как все они хранятся в двоичном формате! Единственная причина, по которой 150 "меньше", чем 10010110, заключается в том, как мы пишем его на экране (или на бумаге).

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

А как насчет восьмеричного и шестнадцатеричного?

Восьмеричное (основание 8) и шестнадцатеричное (основание 16) - это просто "ярлык" для представления двоичных чисел, поскольку оба эти основания являются степенями 2. 3 восьмеричные цифры = 2 шестнадцатеричные цифры = 8 двоичных цифр = 1 байт. Программисту проще представить 32-разрядное целое число, часто используемое для 32-разрядных значений цвета, как FF00EE99 вместо 11111111000000001110111010011001.

Недвоичные компьютеры

Представьте себе компьютер, основанный на базе 10. Тогда каждый "переключатель" будет иметь 10 возможных состояний. Они могут быть представлены цифрами (известными как "запреты" или "dits", что означает "десятичные цифры") от 0 до 9. В этой системе числа будут представлены в базе 10. Это невозможно с обычными электронными компонентами сегодня, но теоретически возможно на квантовом уровне.

Является ли эта система более эффективной? Предполагая, что "переключатели" стандартного двоичного компьютера занимают то же самое количество физического пространства (нанометров), что и эти переключатели base-10, компьютер base-10 мог бы вместить значительно больше вычислительной мощности в то же самое физическое пространство. Таким образом, хотя вопрос о том, что двоичный код "неэффективен", имеет некоторую обоснованность в теории, но не в практическом использовании сегодня.

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

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

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



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

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

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

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

1111 (в двоичном формате) = 8 + 4 + 2 + 1 = 15 (в десятичной системе)

Учет 0 даёт нам 16 возможных значений для четырех двоичных битов. Переместитесь на 8 бит, и вы получите 256 возможных значений. Это занимает намного больше места для представления, поскольку четыре цифры в десятичной форме дают нам 10000 возможных значений. Конечно, бинарный код занимает больше места, но компьютеры понимают двоичные файлы намного лучше, чем десятичную систему. И для некоторых вещей, таких как логическая обработка, двоичный код лучше десятичного.

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

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

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

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

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

Вот схема типичного транзистора:

Схема типичного полупроводникового транзистора компьютера

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

Почему только двоичная система

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

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

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

Таким образом, бинарная математика проще для компьютера, чем что-либо ещё. Двоичная логика легко преобразуется в двоичные системы, причем True и False соответствуют состояниям Вкл и Выкл .

Бинарная таблица логических операций

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

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

Вы здесь: Главная Статьи Статьи ИТ Что такое двоичный код?

Что такое двоичный код?


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

Каким же образом компьютер умудряется обрабатывать такую разнообразную информацию?
Секрет заключается в двоичной системе исчисления. Все данные поступают в компьютер, представленные в виде единиц и нулей, каждому из которых соответствует одно состояние электропровода: единицам - высокое напряжение, нулям - низкое или же единицам - наличие напряжения, нулям - его отсутствие. Преобразование данных в нули и единицы называется двоичной конверсией, а окончательное их обозначение - двоичным кодом.
В десятичном обозначении, основанном на десятичной системе исчисления, которая используется в повседневной жизни, числовое значение представлено десятью цифрами от 0 до 9, и каждое место в числе имеет ценность в десять раз выше, чем место справа от него. Чтобы представить число больше девяти в десятичной системе исчисления, на его место ставится ноль, а на следующее, более ценное место слева - единица. Точно так же в двоичной системе, где используются только две цифры - 0 и 1, каждое место в два раза ценнее, чем место справа от него. Таким образом, в двоичном коде только ноль и единица могут быть изображены как одноместные числа, и любое число, больше единицы, требует уже два места. После ноля и единицы следующие три двоичных числа это 10 (читается один-ноль) и 11 (читается один-один) и 100 (читается один-ноль-ноль). 100 двоичной системы эквивалентно 4 десятичной. На верхней таблице справа показаны другие двоично-десятичные эквиваленты.
Любое число может быть выражено в двоичном коде, просто оно займет больше места, чем в десятичном обозначении. В двоичной системе можно записать и алфавит, если за каждой буквой закрепить определенное двоичное число.

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

Биты и байты

Самая маленькая единица в компьютерной обработке, бит - это единица данных, которая может обладать одним из двух возможных условий. К примеру, каждая из единиц и нулей (справа) означает 1 бит. Бит можно представить и другими способами: наличием или отсутствием электрического тока, дырочкой и ее отсутствием, направлением намагничивания вправо или влево. Восемь битов составляют байт. 256 возможных байтов могут представить 256 знаков и символов. Многие компьютеры обрабатывают байт данных одновременно.


Двоичная конверсия. Четырехцифровой двоичный код может представить десятичные числа от 0 до 15.

Кодовые таблицы

Когда двоичный код используется для обозначения букв алфавита или пунктуационных знаков, требуются кодовые таблицы, в которых указано, какой код какому символу соответствует. Составлено несколько таких кодов. Большинство ПК приспособлено под семицифровой код, называемый ASCII, или американский стандартный код для информационного обмена. На таблице справа показаны коды ASCII для английского алфавита. Другие коды предназначаются для тысяч символов и алфавитов других языков мира.


Двоичный код может быть непозиционным и позиционным.

Из комбинаторики известно, что, в случае непозиционного кода, количество комбинаций (кодов) n-разрядного кода является числом сочетаний с повторениями, равно биномиальному коэффициенту:

<n+k-1\choose k></p>
<p> = (-1)^k = \frac<\left(n+k-1\right)!><k!\left(n-1\right)!>
, [возможных состояний (кодов)], где:

\frac<\left(n+k-1\right)!></p>
<p><k!\left(n-1\right)!>=\frac<\left(2+k-1\right)!><k!\left(2-1\right)!>=\frac<\left(k+1\right)!>=k+1
, [возможных состояний (кодов)], т.е.

N_<np></p>
<p>(n)=n+1
, [возможных состояний (кодов)], где

N_<np></p>
<p>(n)=n+1=8+1=9
, [возможных состояний (кодов)].

В случае позиционного кода, число комбинаций (кодов) n-разрядного двоичного кода равно числу размещений с повторениями:

N_<p></p>
<p>(n)=\bar(2,n) = \bar_2^n = 2^n
, где

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

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