Двоичная система счисления
В зависимости от основания принятой системы счисления для изо-
бражения числа в машине в каждом разряде требуется различное число элементов или устойчивых состояний элемента. Большинство механиче- ских вычислительных устройств работали в десятичной системе счисле- ния. Каждому разряду в них соответствует элемент, имеющий 10 различ- ных состояний. Например, в русских счетах для изображения одного раз- ряда числа употребляется спица с 10 косточками, а в арифмометре - шес- терня с 10 зубьями, расположенными по окружности через каждые 36 гра- дусов. Для механических элементов выбор системы счисления не очень важен: для пятеричной системы можно надеть на спицу 5 косточек (так и сделано на китайских счетах суан-пан), а для двенадцатеричной - сделать
шестерни с 12 зубьями через *0 градусов вместо 36.
Наиболее естественным было бы использование для изображения чисел в
ЭВМ десятичной системы счисления. Но для построения ЭВМ оказались более удобными другие системы счисления, отличные от десятичной. И вызвано это тем, что для электронных и некоторых электромеханических элементов харак- терно наличие двух устойчивых состояний. Так, например, электромеханиче- ское реле может быть замкнуто или разомкнуто, конденсатор заряжен или раз- ряжен, электронная лампа может проводить или не проводить ток. Магнит мо- жет находиться в одном из двух состояний намагниченности. Применение эле- ментов, имеющих два различных устойчивых состояния, требует применения системы счисления, использующей только две цифры. Таковой является двоич- ная система счисления. Кроме удобства изображения чисел с помощью элек- тронных элементов, двоичная система обладает рядом преимуществ при вы- полнении арифметических операций. Поэтому конструкция ЭВМ предусматри-
вает в основном представление чисел в двоичной системе счисления.
Двоичная система есть позиционная система счисления с осно-
ванием два. Для изображения чисел в этой системе требуется лишь две
цифры: 0 и *. Благодаря этому числа можно изображать с помощью эле- ментов, имеющих два устойчивых состояния: одно из них принимается за изображение нуля, другое - за изображение единицы. Основание двоич- ной системы «два» изображается в этой системе как 10. Нетрудно видеть, что следующим числом будет число 11, затем 100 и т.д. Первые числа на-
турального ряда выражаются в двоичной системе счисления так:
Десятичные * 1 2 3 4 5 6 7 8 9
Двоичные 0 1 10 11 100 *01 **0 11* 1000 *001
Из приведенной записи видно, что степени основания, т.е. 21, *2, 23, …,
в двоичной системе счисления представляются как набор нулей и единиц, причем количество нулей совпадает с показателем степени при основа- нии. Аналогично и в десятичной системе - степени основания 10 пред-
ставляются таким же набором нулей и единиц.
Следует отметить, что запись числа в двоичной системе счисления
значительно длиннее десятичной записи: для записи произвольного цело- го числа в двоичной системе требуется в среднем в 3 раза больше разря- дов, чем в десятичной. Поэтому при обычном ручном счете десятичная система удобнее двоичной. Однако в электронных машинах важно не ко- личество разрядов (элементов), а общее количество устойчивых состояний
всех элементов, необходимых для изображения чисел.
Рассмотрим организацию двоичной системы счисления на примере
десятичной системы. Десятичное число 325 можно представить следую-
щим образом:
325=300+20+*=*·1*0+2·10+5·*=3·10 +*·10 +5·10 .
2 1 0
Точно также строится и любая другая система счисления, в том числе и
двоичная. Произвольное число в двоичной системе счисления будет изобра-
жаться последовательностью цифр:
an…*0,*-1…a-m=an·2n+…+a0·20+…+а-1·2-1+…+а-m·2-m,
где каждый из коэффициентов может принимать значение 0 или 1.
Рассмотрим для примера двоичное число 1001, (оно соответствует деся-
тичному числу девять):
*0012=*·23+0·*2+0·21+1·20=*+1=910.
Арифметические действия в двоичной системе счисления производятся по
обычным правилам арифметики согласно соответствующим таблицам.
Двоичная таблица сложения Двоичная таблица умножения
*+0= 0 0·0=0
0+1= * *·1=0
1+0= * 1·0=0
1+1=10 1·*=1
При сложении двух двоичных чисел необходимо учитывать, что 1+1 да-
ют ноль в данном разряде и единицу переноса в следующий старший разряд. Правила сложения остаются теми же, что и в десятичной системе: сложение ве- дем, начиная с младших разрядов, а при возникновении переносов учитываем их в старших разрядах. Поясним это на примере сложения двух двоичных чи-
сел:
Единицы переноса *1 1* 1* 11111
Первое слагаемое +110*01,1011 +110111
Второе слагаемое *1000,1110 11011
Сумма *001110,100* 1010*10
Несколько сложнее производится сложение трех и более двоичных чисел.
В этом случае необходимо внимательно следить за образующимися при сложе- нии единицами переноса в старшие разряды, поскольку эти единицы могут пе-
реходить не только в ближайшие старшие разряды, но и в более удаленные.
При вычитании двоичных чисел необходимо помнить, что занятая в
ближайшем старшем разряде единица дает две единицы соседнего младшего разряда. Если в соседних старших разрядах стоят нули, то приходится занимать единицу через несколько разрядов. При этом единица, занятая в ближайшем значащем старшем разряде, даст две единицы младшего разряда и единицы во всех нулевых разрядах, стоящих между младшим и тем старшим разрядом, у
которого брался заем.
Примеры: 1) _101*1 *) _10001 3)_1101 4) _10110
1101 1100 *11 1*1
100* 10* 110 10001
При умножении двоичных чисел используются двоичные таблицы ум-
ножения и сложения.
Пример: 1) ×111 2) ×1001 3) ×11*11
**1 1011 1*11
+ 111 + 1*01 11011
00* 1001 110*1
111 1001 *1011
100011 11*0011 11011
1100*0101
Из примера видно, что умножение в двоичной системе сводится к много-
кратному сложению и сдвигам: если в данном разряде множимого записана единица, то осуществляется прибавление к промежуточной сумме множимого,
сдвинутого на один разряд влево, если - 0, то прибавление нуля.
При делении двоичных чисел используются двоичные таблицы умноже-
ния и вычитания. Поскольку деление - действие, обратное умножению, то оно
сводится соответственно к сдвигам и вычитанию делителя.
Пример: 1) _11*1 | 1*1 2) _11001| 101 3) _110**| 11
101 11 1*1 101 11 1001
_101 _101 _*1*
1*1 *01 11
00* 000 000
Как видно из приведенных примеров, правила выполнения арифметиче-
ских действий в десятичной и двоичной системах одинаковы. Однако в двоич- ной системе счисления они гораздо проще, а, следовательно, и результаты вы- числения надежнее. А надежность на дорогостоящем оборудовании играет большую роль, т.к. любое искажение отражается в виде неправильных резуль-
татов на выходе.
Таким образом, применительно к электронным вычислительным машинам
двоичная система счисления обладает рядом преимуществ перед десятичной. Во-первых, при представлении чисел в машине каждая двоичная цифра числа может быть представлена элементом машины, имеющим лишь два устойчивых состояния, одно из которых принимается за 0, а другое - за 1. Во-вторых, арифметические действия над двоичными числами оказываются намного про- ще, чем соответствующие операции в десятичной системе. В-третьих, двоичная система оказывается более экономичной, чем десятичная, с точки зрения затра-
ты элементов.
Недостатком двоичной системы является то, что она не привычна для че-
ловека. Значит, неудобством этой системы счисления (как, впрочем, и всякой другой, отличной от десятичной) является необходимость перевода исходных данных из десятичной системы в двоичную при вводе их в машину и обратного
перевода из двоичной в десятичную при выводе результатов вычислений