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


Двоичная система счисления (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 была определена как наиболее практичная система для использования с компьютерами, которые мы проектировали.

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

Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, компьютеры, системы счисления




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




Файлы и потоки в C#: общая информация
Урок 3. Оператор CREATE SQL
Урок 38. Коллекция очередь (Queue) в C#