Двоичная система счисления

Эта статья входит в число готовых статей
Эта статья прошла проверку экспертом
Материал из «Знание.Вики»
Системы счисления
Позиционные
Непозиционные
Смешанные

Двои́чная систе́ма счисле́ния — это один из видов позиционных систем счисления. Основание данной системы равно двум, то есть используется только два символа для записи чисел — цифры 0 и 1. При этом, как и во всякой позиционной системе, значение (вес) цифры зависит от занимаемого ею места (позиции или разряда)[1].

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

Стоит отметить, что английский термин binary digit — двоичная цифра, дал название единице измерения информации — бит.

История

Двоичная система счисления изучалась в Европе в XVI - XVII веках, однако системы, связанные с двоичными числами, появились ранее во многих культурах, включая древний Египет, Китай и Индию. Лейбниц был особенно вдохновлен китайским «И Цзин» (Двоичная система счисления в И Цзин используется для интерпретации четвертичной техники гадания).

В 1605 году Френсис Бэкон описал систему, в которой буквы алфавита могут быть сведены к последовательностям двоичных цифр, которые в свою очередь могут быть закодированы как едва заметные изменения шрифта в любых случайных текстах. Важным шагом в становлении общей теории двоичного кодирования является замечание о том, что указанный метод может быть использован применительно к любым объектам (Шифр Бэкона)[2].

Современная двоичная система была полностью описана Лейбницем в XVII веке в работе Explication de l’Arithmétique Binaire. В системе счисления Лейбница были использованы цифры 0 и 1, как и в современной двоичной системе. Как человек, увлекающийся китайской культурой, Лейбниц знал о книге Перемен и заметил, что гексаграммы соответствуют двоичным числам от 0 до 111111.

В 1854 году английский математик Джордж Буль опубликовал знаковую работу, описывающую алгебраические системы применительно к логике, которая в настоящее время известна как булева алгебра или алгебра логики[3].

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

В ноябре 1937 года Джордж Штибиц, впоследствии работавший в Bell Labs, создал на базе реле двоичный полусумматор «Model K Аdder», который выполнял двоичное сложение. В конце 1938 года Bell Labs развернула исследовательскую программу во главе со Штибицом. Созданный под его руководством калькулятор комплексных чисел, завершённый 8 января 1940 года, умел выполнять операции с комплексными числами[4].

Восcозданная модель компьютера Z1

Во время демонстрации на конференции American Mathematical Society в Дартмутском колледже 11 сентября 1940 года Штибиц продемонстрировал возможность посылки команд удалённому калькулятору комплексных чисел по телефонной линии с использованием телетайпа. Это была первая попытка использования удалённой вычислительной машины посредством телефонной линии. Среди участников конференции, бывших свидетелями демонстрации, были Джон фон Нейман, Джон Мокли и Норберт Винер[5].

В 1938 году немецкий инженер Конрад Цузе завершает разработку устройства под названием Z1. Это был механический вычислитель с электрическим приводом и с использованием электромеханических реле. Он был программируемым и использовал двоичную систему счисления[6].

Представление двоичных чисел

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

Натуральные числа

В общем виде натуральное число, записываемое в двоичной системе счисления как , выглядит следующим образом:

где:

 — количество цифр (знаков) в числе,
 — значения цифр из множества {0,1},
 — порядковый номер позиции цифры (вес разряда).

Таким образом, по общему правилу представления числа в позиционной системе счисления, двоичное число в развёрнутом виде выглядит как сумма произведений числовых значений цифр из множества {0,1} на степень основания, то есть числа 2. Значение степени определяется порядковым номером позиции (разряда) справа налево, начиная с нулевой.

Например: 1012 = (1·22 + 0·21 + 1·20)10

Отрицательные числа

Отрицательные двоичные числа обозначаются так же как и десятичные: знаком «—» перед числом. А именно, отрицательное целое число в двоичной системе счисления выглядит следующим образом:

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

Дробные числа

Дробное число, записываемое в двоичной системе счисления как , имеет вид:

где:

 — количество цифр дробной части числа,
 — значения цифр из множества {0,1}.

Веса цифр дробной части равны отрицательным степенями двойки, например:

101,1012 = (1·22 + 0·21 + 1·20 + 1·2–1 + 0·2–2 + 1·2–3)10 = 5,62510

При этом в виде конечных дробей в двоичной системе счисления можно записать только такие рациональные числа, где знаменатель  является степенью двойки, другие же рациональные числа представляются в виде бесконечных двоичных дробей[7].

Арифметические действия над двоичными числами

В двоичной системе счисления арифметические операции выполняются по тем же правилам, что и во всех позиционных системах[8].

Правила сложения и вычитания

  • Правило сложения одноразрядных двоичных чисел
   0 + 0 =  0
   1 + 0 =  1
   0 + 1 =  1
   1 + 1 = 10 (в младший разряд записывается ноль с переносом единицы в старший разряд)

При сложении многоразрядных чисел применяется правило поразрядного сложения.
Например, при сложении чисел (13 + 5)10 = (1101 + 101)2 в результате получаем число 100102 = 1810:

     1101
   +  101
    ------
    10010
  • Правило вычитания одноразрядных двоичных чисел
   0 − 0 = 0
   1 − 0 = 1
   1 − 1 = 0
   0 − 1 = 1 (при вычитании из нуля единицы происходит заём единицы из старшего разряда)

При вычитании многоразрядных чисел применяется правило поразрядного вычитания.
Например, при вычитании чисел (18 − 5)10 = (10010 − 101)2 в результате получаем число 11102 = 1310

     1110
   —  101
     ----
     1001

Правила умножения и деления

  • Правило умножения одноразрядных двоичных чисел
   0 × 0 = 0
   1 × 0 = 0
   0 × 1 = 0
   1 × 1 = 1

При умножении многоразрядных чисел применяется правило поразрядного умножения с последующим сложением результатов (умножение «в столбик»)
Например, при умножении чисел (14 × 2)10 = (1110 × 10)2 в результате получаем число 111102 = 2810

     1110
     × 10
   ------
   + 0000
    1110
   ------
    11100
  • При делении также необходимо выполнять промежуточные действия, каковыми являются умножение и вычитание (деление «в столбик»).
    Например, при делении чисел (30 : 6)10 = (11110 × 110)2 в результате получаем число 1012 = 510
   11110| 110
        | ---
  −110  | 101
     ---
     110
    −110
     ---
       0

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

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

Преобразовать число из двоичной системы счисления в десятичную можно следующим образом: каждый разряд двоичного числа необходимо умножить на 2n, где n - номер разряда, начиная с 0. Затем суммировать полученные значения[9].

Допустим, дано двоичное число 110001. Для перевода в десятичное число необходимо представить его в развёрнутом виде следующим образом:

1100012 = (1·25 + 1·24 + 0·23 + 0·22 + 0·21 + 1·20)10

далее произвести суммирование тех разрядов, где произведение не равно нулю:

(32 + 16 + 1)10 = 4910

Преобразование дробных двоичных чисел в десятичные

Преобразование дробных двоичных чисел в десятичные производится по тому же правилу с учётом того, что дробная часть двоичного числа представлена разрядами с отрицательными степенями двойки. Например, преобразуем дробное двоичное число 1011010,101 в форму десятичного числа:

1011010,1012 = (1·26 + 0·25 + 1·24 + 1·23 + 0·22 + 1·21 + 0·20 + 1·2−1 + 0·2−2 + 1·2−3)10 = (64 + 16 + 8 + 2 + 0,5 + 0,125 )10 = 90,62510

Для удобства перевода целой части двоичного числа можно воспользоваться таблицей десятичных значений степеней двойки (до значения 210)

210 29 28 27 26 25 24 23 22 21 20
1024 512 256 128 64 32 16 8 4 2 1

Перевод дробной части методом Горнера

Этот метод также называют синтетическим делением[10]. Результат, полученный в качестве первого действия, используют как исходную часть для следующего и так далее в форме последовательных переходов.

Рассмотрим перевод двоичной дроби 0,1012 в форму десятичной дроби. Ступеней деления будет столько, сколько знаков в двоичном числе после запятой, делителем является основание системы счисления, то есть в данном случае число два:

 1. (0 + 1)/2 = 0,5
 2. (0,5 + 0)/2 = 0,25    (в качестве слагаемого используется результат предыдущей ступени деления = 0,5)
 3. (0,25 + 1)/2 = 0,625  (в качестве слагаемого используется результат предыдущей ступени деления = 0,25)

Ответом будет результат последнего перехода, то есть 0,1012= 0,62510

Преобразование десятичных чисел в двоичные

Одним из алгоритмов перевода десятичного числа в двоичное является деление нацело на 2 с последующим «сбором» двоичного числа из остатков деления. Например, для перевода десятичного числа 14 в двоичное представление необходимо выполнить следующие действия[9]:

  14 / 2 = 7, остаток 0 — младший разряд двоичного числа
   7 / 2 = 3, остаток 1
   3 / 2 = 1, остаток 1
   1 / 2 = 0, остаток 1 — старший разряд двоичного числа

Таким образом, результат преобразования будет следующим: 1410 = 11102

Преобразование дробных десятичных чисел в двоичные

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

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

Например, для перевода дробного десятичного числа 206,625 в дробное двоичное число необходимо выполнить следующие действия:

  • производим перевод целой части, где в итоге получаем 20610 = 110011102;
  • далее действуем в соответствии с алгоритмом перевода дробной части; целые части произведений, полученных в каждом шаге (выделены жирным шрифтом), являются разрядами искомой дробной части:
  0,625·2 = 1,25
  0,25·2  = 0,5
  0,5·2   = 1,0

Таким образом, получаем значение дробной части 0,62510 = 1012 и в целом имеем результат: 206,62510 = 11001110,1012

Применение двоичных чисел

Благодаря тому, что множеству символов {0,1} можно сопоставить два устойчивых состояния электронных вентилей «выключено/включено», основное применение двоичная система счисления нашла в вычислительной технике, в цифровых системах контроля и управления. Ядром любого процессора является арифметико-логическое устройство (АЛУ), которое воспринимает управляющие сигналы и операнды в виде двоичных кодов и чисел. Результаты обработки информации также формируются в виде двоичных чисел и результатов логических сопряжений. Этот процесс развился потому, что двоичные сигналы имеют высокую надёжность при передаче и хранении информации, а правила выполнения команд просты и удобны.

Литература

Босова Л. Л., Босова А. Ю. Информатика. Учебник для 8 класса / Вед.редактор Полежаева О. — М.: «Бином», 2013. — 155 с. — ISBN 978-5-9963-1166-8. Шаманов А. П. Системы счисления и представление чисел в ЭВМ. Учебное пособие. — Екатеринбург: Уральский университет, 2016. — 52 с. — ISBN 978-5-7996-1719-6.

Примечания

  1. Двоичная система счисления // Большая советская энциклопедия : [в 30 т.] / гл. ред. А. М. Прохоров. — 3-е изд. — М. : Советская энциклопедия, 1969—1978.
  2. Развитие обучения. Дата обращения: 31 марта 2024. Архивировано 18 марта 2017 года.
  3. Буль Джордж. An investigation of the laws of thought (Исследование законов мышления) (англ.). — London: Walter and Maberly, Cambridge: MacMillan and Co, 1854. — 424 p.
  4. George Stibitz (англ.) // History-Computer. — Обновлено: 31 июля 2023 г.
  5. George Robert Stibitz (англ.). History Committee IEEE. Дата обращения: 2 апреля 2024.
  6. Появление первого механического, частично программируемого компьютера Z1. История компьютеров. Дата обращения: 2 апреля 2024.
  7. Представление дробных чисел в двоичной системе счисления. Сайт server.179.ru. Дата обращения: 1 апреля 2024.
  8. Арифметические операции в двоичной системе счисления. Планета информатики. Дата обращения: 1 апреля 2024.
  9. 9,0 9,1 Шаманов А. П., 2016.
  10. Схема Горнера. Дата обращения: 1 апреля 2024.