Выполнение арифметических операций с двоичными числами

В машинной арифметике знак «+» числа принято кодировать цифрой 0, а знак «-» принято кодировать цифрой 1. Положительные числа хранятся в ЭВМ в прямом коде (вышеописанном), перед ними ставится знак 0. Отрицательные числа хранятся в так называемом дополнительном коде.

Рассмотрим правило кодирования отрицательных чисел в дополнительном коде. Число сначала записывается в обратном коде, а затем к самому младшему разряду прибавляется 1. Обратный код числа получается из прямого кода числа при порязрядной замене 1 на 0 и 0 на 1.

Пример (здесь знак числа отделен символом ‘|’):

+8310=0|10100112.- в прямом коде

-8310=1|01011002 - в обратном коде

-8310=1|01011002+12=1|01011012 - в дополнительном коде.

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

Сложение

Для этого нужно знать простейшую таблицу

а). 0 + 0 = 0

б). 0 + 1 = 1 + 0 = 1

в). 1 + 1 = 10

Последнее означает, что при сложении двух двоичных чисел, равных 1 в каком-либо разряде двоичного числа, возникает перенос в старший разряд.

Пример:

+ 1001111

10111100

Вычитание

Таблица вычитания двоичных чисел имеет вид:

а). 0 - 0 = 0

б). 1 - 0 = 1

в). 1 - 1 = 0

г). 10 - 1 = 1 и в общем случае .

Если при поразрядном вычитании приходится вычитать из нуля в уменьшаемом единицу в вычитаемом, то делается заем в соседнем старшем разряде, т. е. единица старшего разряда представляется как 2 единицы данного разряда.

Пример:

- 10110110

Умножение

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

Пример (умножение двух двоичных чисел, начиная с младших разрядов множителя):

* 1011

+ 110101

1001000111

Тот же результат может быть получен при умножении, начиная со старших разрядов множителя:

* 1011

+ 110101

1001000111

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

Деление

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

Примеры:

11010111 10110 1011001.00 11011010

10110 1001.11 11011010 0.01101

100111 100010100

10110 11011010

100010 11101000

10110 11011010

11000 1110

10110

10


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: