Двоичная система счисления
Вопреки распространённому заблуждению, двоичная система счисления была придумана не инженерами-конструкторами ЭВМ, а математиками и философами задолго до появления компьютеров, ещё в 17 веке. Великий немецкий учёный Лейбниц считал:
«Вычисление с помощью двоек... является для науки основным и порождает новые открытия... При сведении чисел к простейшим началам, каковы 0 и 1, везде появляется чудесный порядок».
Впервые двоичная система появилась в 1605 году в работах Томаса Хэрриота (он изобрёл знаки >
и ). Позже двоичная система была забыта, и только в 1936-1938 гг. американский инженер и математик Клод Шеннон нашёл замечательные применения двоичной системы при конструировании электронных схем.
Двоичная система удобна для компьютера, но неудобна для человека - числа получаются очень длинными и их трудно записывать и запоминать. Она используется, как правило, для «внутренних нужд» компьютера. Двоичная система счисления позволяет достаточно просто организовать числа, и для того, чтобы представить число в ЭВМ, достаточно иметь устройство, которое обладает только двумя устойчивыми состояниями, одно из которых соответствует логической «1», а другое - «0». Таких элементов достаточно много: намагниченный или не намагниченный сердечник, открытый или закрытый транзистор и др. Для десятичной системы счисления понадобилось бы, к примеру, устройство с 10 устойчивыми состояниями. Это значительно усложнило бы схему ЭВМ.
Другим важным достоинством двоичной системы является простота вычислений. Рассмотрим, как выполняются арифметические действия в двоичной системе. Для этого проведём анализ таблиц сложения и умножения в двоичной системе.
Примеры сложения двоичных чисел:
Примеры умножения двоичных чисел:
Следует обратить внимание на аналогию в правилах выполнения арифметических действий в двоичной и десятичной системах счисления: например, если при сложении двух двоичных чисел сумма цифр окажется больше единицы, то возникает перенос в старший разряд.
Вычитание двоичных чисел осуществляется следующим образом: Вычитаемое число преобразуется в дополнительный код
. Например, если надо вычесть из числа 10110 число 01000, то вычитаемое 01000 преобразуется в дополнительный код так: в числе вместо 0 пишется 1, а вместо 1 пишется 0, следовательно, получим из вычитаемого число 10111. Затем преобразованное число складывается с уменьшаемым:
И вычитаемое, и уменьшаемое состоят из 5 разрядов, а результат суммы - число 6-разрядное. Старший разряд суммы отнимается от числа и складывается с результатом:
Такой приём часто используется в практике вычислений. Например, в десятичной системе числа можно вычесть так. Допустим требуется найти разность 842-623. Представим число 623 в дополнительный вид, отняв его от 1000. Получим число 377. Затем найдём сумму: 842+377=1219. Отбросим перенос в старший разряд и получим число 219. Мы нашли решение этого примера.
Деление двоичных чисел выполняется аналогично делению десятичных чисел. Вычитание и умножение в процессе деления необходимо выполнять рассмотренными ранее способами.
Важнейшее преимущество двоичной арифметики заключается в том, что она позволяет все арифметические действия свести к одному - сложению, а это значительно упрощает устройство процессора ЭВМ. Отметим недостаток, характерный для двоичной системы счисления - значительный рост числа разрядов при увеличении числа. Но все достоинства этой системы делают такой недостаток не столь существенным.
Система счисления - это способ отображения чисел на бумаге. Они используются в расчетах на оборудовании и цифровой аппаратуре. Двоичная система счисления сейчас представляет собой один из наиболее востребованных инструментов в вычислительных приборах. Рассмотрим особенности работы с этой системой счисления.
История возникновения двоичной системы счисления
Ученые древнего мира предложили производить вычисления, используя лишь 2 цифры, и предположили, что за таким методом расчета будущее. Это объясняется простотой такого метода исчисления: всего 2 положения (0 и 1), 2 позиции, например, есть сигнал или нет сигнала. Немецкий математик Лейбниц полагал, что математические операции, осуществляемые над 2 цифрами, несут в себе определенный порядок.
До 40-х годов 20 века теория двоичной системы не развивалась, пока американский ученый Клод Шеннон не предложил применять ее в работе электронных схем. Оказалось, что их использование в ПЭВМ гораздо предпочтительнее, ведь человеку непросто запоминать громоздкое скопление нулей и единиц. А в компьютере достаточно создать устройство, имеющее логические 0 и 1, то есть обладающее не более 2 логическими состояниями. Это может быть намагниченный или размагниченный сердечник, закрытый или открытый трансформатор и т.д. Всего 2 положения, а не 10, как могло бы быть при использовании десятичной системы при компьютерных вычислениях.
Характеристики двоичной системы счисления
К особенностям двоичной системы счисления следует отнести:
- Использование всего пары цифр (0 и 1). Основание такой системы равно 2.
- Алгебраические операции, проводимые с числами из двух цифр, не представляют большой сложности.
- Хранение и преобразование сигналов видеоаппаратурой и приборами записи осуществляется в коде, состоящем из 0 и 1.
- Цифровые каналы связи обмениваются данными, используя их представление в виде 0 и 1.
Счет в двоичной системе
И затем для каждой цифры по порядку идет повышение разряда:
100 - четыре.
110 - шесть.
После 7 цифры записываются в виде 4 разрядов:
1000 - восемь.
1001 - девять.
1010 - десять.
1011 - одиннадцать.
1100 - двенадцать.
1101 - тринадцать.
1110 - четырнадцать.
Перевод чисел из двоичной системы в десятичную
Представление десятичных чисел в двоичной системе делает их довольно громоздкими. Рассмотрим как происходит обратный процесс: перевод числа, состоящего из 0 и 1, в удобный для нас вид. Например, нужно перевести двоичный код 10101110 в десятичный вид.
Его можно разбить по степеням, как это выполняется в десятичной системе. Так, число 1587 можно отобразить как:
1000 + 500 + 80 + 7.
Или еще одним способом:
1*10 3 + 5*10 2 + 8*10 1 + 7*10 0 .
В предыдущей записи просуммированы степени, соответствующие разряду каждой цифры за вычетом 1. За основание степени взято число10, потому что это десятичная система счисления. Этот метод можно применить к числу, представленному в двоичном виде. Только за основание степени следует брать цифру 2. Получается:
10101110 = 1*2 7 + 0*2 6 + 1*2 5 + 0*2 4 + 1*2 3 + 1*2 2 + 1*2 1 + 0*2 0 = 128 + 0 + 32 + 0 + 8 + 4 + 2 + 0 = 174.
Степени двойки выбираются по следующему принципу: необходимо посчитать разряд цифры и вычесть 1 из этого значения. Следует помнить, что разряд увеличивается справа налево. Так, самая первая единица имеет восьмой разряд, тогда ее надо умножить на 2 7 и т.д.
Таким образом, двоичная форма числа 10101110 - это 174 в десятичном представлении. Корректная запись выглядит так:
10101110 2 = 174 10 .
Бывает необходимость в обратном процессе: перевести десятичный вид записи в последовательность из 0 и 1. Это выполняется путем деления на 2 и образованием двоичного числа из остатка. Например, число 69.
Делимое | Делитель | Частное | Остаток |
69 | 2 | 34 | 1 |
34 | 2 | 17 | 0 |
17 | 2 | 8 | 1 |
8 | 2 | 4 | 0 |
4 | 2 | 2 | 0 |
2 | 2 | 1 | 0 |
1 | 2 | 0 | 1 |
Смотрим на остаток. Получаем число в двоичной форме, начиная с последней строчки: 1000101 (эти цифры расположены в столбце «Остаток», если смотреть снизу вверх). Нужно проверить полученный результат:
1000101 = 1*2 6 + 0*2 5 + 0*2 4 + 0*2 3 + 1*2 2 + 0*2 1 + 1*2 0 = 64 + 4 +1 = 69.
Математические операции с двоичными числами
Сложение.
Это основная арифметическая операция при расчетах на компьютерах. Основные принципы сложения двоичных чисел опираются на правила:
Таким образом, складывая в столбик 1101 2 и 110 2 , получаем 10011 2 или 19 10 .
Вычитание .
Эта операция идентична сложению, если представить, что одно из двоичных чисел является отрицательным. В таком случае нужно учитывать модули складываемых чисел.
Правила, используемые при вычитании:
0 - 1 = 1 (занимаем из старшего разряда).
Например, вычитаем из 1110 2 число 101 2 , получаем 1001 2 или 9 10 .
Умножение .
На бумаге умножение представляет собой совокупность операций сложения. Например, необходимо произвести умножение 10 10 на 40 10 .
Преобразуем их в совокупность 0 и 1:
10 10 =00001010 2
40 10 = 00101000 2
Оба числа в двоичной форме имеют слева и справа несколько нулей, которые не играют роли в операции умножения. Значимые части - это 101 в числе 10 и 101 в числе 40, расположенные между нулями. Их нужно перемножить, а нули просто дописать в итоговом результате:
Перемножаем левую и правую единицу второго множителя на первый множитель, затем суммируем полученный промежуточный результат. Нули складываем и переписываем в итоговый результат умножения, который в двоичной форме выглядит так: 000000110010000 2 (нижняя строчка слева направо).
Проверяя, получаем:
1 * 2 8 + 1 * 2 7 + 1 * 2 4 = 256 + 128 + 16 = 400.
Деление .
Рассмотрим наиболее простой пример деления без остатка. Надо разделить 14 10 на 2 10 . В двоичном виде это выглядит так:
14 10 = 1110 2 .
Делим 1110 2 на 10 2 в столбик:
1110 |10
Получаем число 111 2 , что равняется 7 в десятичной системе счисления. При проверке умножением доказываем точность результата:
Смотрим на нижнюю строчку слева направо, результат умножения - 1110 2 . Ответ верный.
Двоичная система
Двоичная система счисления - это позиционная система счисления с основанием 2. В этой системе счисления натуральные числа записываются с помощью всего лишь двух символов (в роли которых обычно выступают цифры 0 и 1).
Двоичная система используется в цифровых устройствах , поскольку является наиболее простой и соответствует требованиям:
- Чем меньше значений существует в системе, тем проще изготовить отдельные элементы, оперирующие этими значениями. В частности, две цифры двоичной системы счисления могут быть легко представлены многими физическими явлениями: есть ток - нет тока, индукция магнитного поля больше пороговой величины или нет и т. д.
- Чем меньше количество состояний у элемента, тем выше помехоустойчивость и тем быстрее он может работать. Например, чтобы закодировать три состояния через величину индукции магнитного поля, потребуется ввести два пороговых значения, что не будет способствовать помехоустойчивости и надёжности хранения информации.
- Двоичная арифметика является довольно простой. Простыми являются таблицы сложения и умножения - основных действий над числами.
- Возможно применение аппарата алгебры логики для выполнения побитовых операций над числами.
Ссылки
- Онлайн калькулятор для перевода чисел из одной системы счисления в другую
Wikimedia Foundation . 2010 .
Двоичная система счисления сегодня используется практически во всех цифровых устройствах. Компьютеры, контроллеры и другие вычислительные устройства производят вычисления именно в двоичной системе. Цифровые устройства записи и воспроизведения звука, фото и видео хранят и обрабатывают сигналы в двоичной системе счисления. Передача информации по цифровым каналам связи также использует модель двоичной системы счисления.
Система носит такое название, потому что основанием системы является число два (2 ) или в двоичной системе 10 2 - это значит что для изображения чисел используется только две цифры "0" и "1". Двоечка записанная справа внизу от числа, здесь и далее будет обозначать основание системы счисления. Для десятичной системы основание обычно не указывают.
Ноль
- 0
;
Один
- 1
;
А что делать дальше? Все цифры кончились. Как же изобразить число два? В десятичной системе, в подобной ситуации (когда закончились цифры), мы вводили понятие десятка, здесь же мы вынуждены ввести понятие "двойка" и скажем, что два - это одна двойка и ноль единиц. А это уже можно и записать как - "10 2 ".
Итак, Два
- 10
2 (одна двойка, ноль единиц)
Три
- 11
2 (одна двойка, одна единица)
Четыре
- 100
2 (одна четверка, ноль двоек, ноль единиц)
Пять
- 101
2 (одна четверка, ноль двоек, одна единица)
Шесть
- 110
2 (одна четверка, одна двойка, ноль единиц)
Семь
- 111
2 (одна четверка, одна двойка, одна единица)
Возможности трех разрядов исчерпались, вводим более крупную единицу счета - восьмерку (осваиваем новый разряд).
Восемь
- 1000
2 (одна восьмерка, ноль четверок, ноль двоек, ноль единиц)
Девять
- 1001
2 (одна восьмерка, ноль четверок, ноль двоек, одна единица)
Десять
- 1010
2 (одна восьмерка, ноль четверок, одна двойка, ноль единиц)
...
и так далее...
...
Всегда, когда возможности задейсвованых разрядов, для отображения следующего числа, исчерпываются, мы вводим более крупные единицы счета, т.е. задействуем следующий разряд.
Рассмотрим число 1011 2 записанное в двоичной системе счисления. Про него можно сказать, что оно содержит: одну восьмерку, ноль четверок, одну двойку и одну единицу. И получить его значение через входящие в него цифры можно следующим образом.
1011 2 = 1 *8+0 *4+1 *2+1 *1, здесь и далее знак * (звездочка) означает умножение.
Но ряд чисел 8, 4, 2, 1 есть не что иное, как целые степени числа два (основания системы счисления) и поэтому можно записать:
1011 2 = 1 *2 3 +0 *2 2 +2 *2 1 +2 *2 0
Подобным образом для двоичной дроби (дробного числа) например: 0.101 2 (пять восьмых), про него можно сказать, что оно содержит: одну вторую, ноль четвертых и одну восьмую долю. И его значение можно вычислить следующим образом:
0.101 2 = 1 *(1/2) + 0 *(1/4) + 1 *(1/8)
И здесь ряд чисел 1/2; 1/4 и 1/8 есть не что иное, как целые степени числа два и мы также можем записать:
0.101 2 = 1 *2 -1 + 0 *2 -2 + 1 *2 -3
Для смешанного числа 110.101 аналогичным образом можем записать:
110.101 = 1 *2 2 +1 *2 1 +0 *2 0 +1 *2 -1 +0 *2 -2 +1 *2 -3
Давайте пронумеруем разряды целой части двоичного числа, справа налево, как 0,1,2…n (нумерация начинается с нуля!). А разряды дробной части, слева направо, как -1,-2,-3…-m. Тогда значение некоторого двоичного числа может быть вычислено по формуле:
N = d n 2 n +d n-1 2 n-1 +…+d 1 2 1 +d 0 2 0 +d -1 2 -1 +d -2 2 -2 +…+d -(m-1) 2 -(m-1) +d -m 2 -m
Где: n
- количество разрядов в целой части числа минус единица;
m
- количество разрядов в дробной части числа
d i
- цифра стоящая в i
-м разряде
Эта формула называется формулой разложения двоичного числа, т.е. числа записанного в двоичной системе счисления. Но если в этой формуле число два заменить на некоторое абстрактное q , то мы получим формулу разложения для числа записанного в q-й системе счисления:
N = d n q n +d n-1 q n-1 +…+d 1 q 1 +d 0 q 0 +d -1 q -1 +d -2 q -2 +…+d -(m-1) q -(m-1) +d -m q -m
С помощью этой формулы вы всегда сможете вычислить значение не только двоичного числа, но и числа записанного в любой другой позиционной системе счислени. О других системах счисления рекомендуем почитать следующие статьи.
В двоичной системе счисления используются всего две цифры 0 и 1. Другими словами, двойка является основанием двоичной системы счисления. (Аналогично у десятичной системы основание 10.)
Чтобы научиться понимать числа в двоичной системе счисления, сначала рассмотрим, как формируются числа в привычной для нас десятичной системе счисления.
В десятичной системе счисления мы располагаем десятью знаками-цифрами (от 0 до 9). Когда счет достигает 9, то вводится новый разряд (десятки), а единицы обнуляются и счет начинается снова. После 19 разряд десятков увеличивается на 1, а единицы снова обнуляются. И так далее. Когда десятки доходят до 9, то потом появляется третий разряд – сотни.
Двоичная система счисления аналогична десятичной за исключением того, что в формировании числа участвуют всего лишь две знака-цифры: 0 и 1. Как только разряд достигает своего предела (т.е. единицы), появляется новый разряд, а старый обнуляется.
Попробуем считать в двоичной системе:
0 – это ноль
1 – это один (и это предел разряда)
10 – это два
11 – это три (и это снова предел)
100 – это четыре
101 – пять
110 – шесть
111 – семь и т.д.
Перевод чисел из двоичной системы счисления в десятичную
Не трудно заметить, что в двоичной системе счисления длины чисел с увеличением значения растут быстрыми темпами. Как определить, что значит вот это: 10001001? Непривычный к такой форме записи чисел человеческий мозг обычно не может понять сколько это. Неплохо бы уметь переводить двоичные числа в десятичные.
В десятичной системе счисления любое число можно представить в форме суммы единиц, десяток, сотен и т.д. Например:
1476 = 1000 + 400 + 70 + 6
1476 = 1 * 10 3 + 4 * 10 2 + 7 * 10 1 + 6 * 10 0
Посмотрите на эту запись внимательно. Здесь цифры 1, 4, 7 и 6 - это набор цифр из которых состоит число 1476. Все эти цифры поочередно умножаются на десять возведенную в ту или иную степень. Десять – это основание десятичной системы счисления. Степень, в которую возводится десятка – это разряд цифры за минусом единицы.
Аналогично можно разложить и любое двоичное число. Только основание здесь будет 2:
10001001 = 1*2 7 + 0*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0
1*2 7 + 0*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0 = 128 + 0 + 0 + 0 + 8 + 0 + 0 + 1 = 137
Т.е. число 10001001 по основанию 2 равно числу 137 по основанию 10. Записать это можно так:
10001001 2 = 137 10
Почему двоичная система счисления так распространена?
Дело в том, что двоичная система счисления – это язык вычислительной техники. Каждая цифра должна быть как-то представлена на физическом носителе. Если это десятичная система, то придется создать такое устройство, которое может быть в десяти состояниях. Это сложно. Проще изготовить физический элемент, который может быть лишь в двух состояниях (например, есть ток или нет тока). Это одна из основных причин, почему двоичной системе счисления уделяется столько внимания.
Перевод десятичного числа в двоичное
Может потребоваться перевести десятичное число в двоичное. Один из способов – это деление на два и формирование двоичного числа из остатков. Например, нужно получить из числа 77 его двоичную запись:
77 / 2 = 38 (1 остаток)
38 / 2 = 19 (0 остаток)
19 / 2 = 9 (1 остаток)
9 / 2 = 4 (1 остаток)
4 / 2 = 2 (0 остаток)
2 / 2 = 1 (0 остаток)
1 / 2 = 0 (1 остаток)
Собираем остатки вместе, начиная с конца: 1001101. Это и есть число 77 в двоичном представлении. Проверим:
1001101 = 1*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 1*2 2 + 0*2 1 + 1*2 0 = 64 + 0 + 0 + 8 + 4 + 0 + 1 = 77