Двоичная арифметика. Тема урока: "Двоичная арифметика" Правила сложения и умножения положительных двоичных чисел
Чтобы овладеть любой системой счисления, надо уметь складывать и умножать в ней любые числа. Арифметические действия в двоичной системе счисления выполняют по тем же правилам, что и в десятичной системе, с той лишь разницей, что основание системы равно двум .
Правила двоичной арифметики
Сложение и вычитание двоичных чисел основаны на правилах этих действий в пределах одного разряда и правилах учета межразрядных переносов и займов.
Для операций сложения, вычитания и умножения используются правила, приведенные в таблице 3.1.
Таблица 3.1
Правила арифметических операций
Перенос, возникающий в i -м разряде, передается в следующий (i +1)-разряд с увеличенным вдвое весом и уменьшенным вдвое значением.
Заем из (i +1)-го разряда передается в i-й разряд с уменьшенным вдвое весом и увеличенным вдвое значением.
Приведем пример сложения двух двоичных чисел. Справа показано сложение тех же чисел в десятичной системе счисления. Следует обратить внимание на то, что перенос в соседний (старший) разряд возникает в том случае, если сумма цифр данного разряда больше или равна основанию системы счисления.
При вычитании двоичных чисел (см. табл. 3.1) в данном разряде при необходимости занимается единица из соседнего (старшего) разряда. Эта занимаемая единица равна двум единицам данного разряда. Заем производится каждый раз, когда цифра в разряде вычитаемого больше цифры в том же разряде уменьшаемого. Например, при вычитании:
единица из разряда с весом 2 4 была занята в разряд с весом 2 3 ; эта единица стала там двойкой, и в разряде с весом 2 3 выполнилось вычитание 10-1 = 1; на месте разряда с весом 2 4 в уменьшаемом фактически остался нуль.
Распространение займа сразу на несколько более старших разрядов можно проследить на примере вычитания чисел 101110,001 (2) и 101,011 (2) . Записав числа друг под другом:
нетрудно заметить, что в разряде с весом 2 -2 в результате вычитания должен произойти заем из разряда с весом 2 1 . Перепишем пример с учетом фактического расположения цифр после заема и выполним вычитание. Вместо зачеркнутых цифр необходимо использовать в качестве уменьшаемого надписанные цифры. Окончательный результат (разность) составляет 101000,110 (2) .
Пример . Уменьшаемое 1000000 (2) , вычитаемое 1 (2) , разность составляет
В соответствии с правилами можно эффективно организовать последовательное умножение множимого на разряды множителя. При каждом умножении на разряд множителя, равный 1, множимое передается в сумматор с накапливающим регистром; если разряд множителя равен 0, передача множимого в сумматор блокируется. Каждый раз при передаче множимого в сумматор должен быть учтен вес очередного разряда множителя путем сдвига накапливаемого частичного произведения или множимого. Таким образом, основу устройства умножения составляет устройство сложения, к которому добавляются регистры множителя и множимого, а также цепи сдвига частичных произведений и множимого.
Операция деления выполняется путем последовательных вычитаний делителя из промежуточных остатков, а устройство деления состоит из вычитателя с накапливающим регистром, регистра частного и регистра делителя с цепями сдвига остатков или делителя.
В основном арифметические операции выполняются на одном общем устройстве, называемом арифметико-логическим устройством (АЛУ).
Старшие разряды сумматоров с наименьшими весами разрядов участвуют в операциях сложения как обычные числовые разряды, но дополнительно они выполняют функции знаковых разрядов.
Перед тем, как рассмотреть формальные правила двоичной арифметики подчеркнем общий принцип сложения и вычитания чисел представленных в любой позиционной системы счисления.
В общем случае процедуры сложения и вычитания двух чисел
A B = C в любой позиционной системы счисления начинаются с младших разрядов.
Код суммы каждго i -того разряда с i получается в результате сложения
a i + b i +1, где единица соответствует переносу из младшего (i - 1)-разряда в i -тый, если в младшем разряде код суммы получился больше или равным основанию системы счисления.
Код разности каждого i -того разряда получается в результате вычитания
a i - b i -1, где единица соответствует заему, если он был, в младшие разряды величины, равной основанию системы счисления.
Следовательно, правила и методы сложения и вычитания в любой позиционной системы счисления в принципе остаются такими же, как в десятичной системе.
Теперь рассмотрим правила арифметики с числами, представленными в двоичном коде.
Сложение двух чисел выполняется поразрядно, начиная с младшего разряда. В каждом разряде выполняется сложение двух цифр слагаемых и единицы переноса из соседнего младшего разряда:
1 + 1 = 0 и осуществляется перенос 1 в старший соседний разряд.
Например:
Вычитание также производится поразрядно, начиная с младшего разряда. При вычитании в данном разряде из нуля единицы необходимо занять единицу из соседнего старшего разряда, которая равна двум единицам данного разряда:
0 - 1 =1 после заема единицы из соседнего старшего разряда.
Например:
Суммирование двоичных чисел в компьютерах осуществляется при помощи двоичных сумматоров, а вычитание - двоичных вычитателей. Но как будет показано в дальнейшем, вычитание можно организовать также при помощи процедуры сложения, т.е. при помощи двоичных сумматоров, если вычитаемое представить в "дополнительном" или "обратном" коде и тем самым исключить необходимость в двоичных вычитателях.
Умножение двоичных чисел производится путем образования про-межуточных произведений и последующего их суммирования. Промежуточные поразрядные произведения формируются по следующим правилам:
0 x 0 = 0 101 510 x 310 = 1510
0 x 1 = 0 11
1 x 1 = 1 + 101
Деление чисел в двоичной системе производится по правилам умножения и вычитания.
Например:
110: 11 = 10 610: 310 = 210
Арифметические действия с двоичными числами подробно будут рассмотрены в дальнейшем.
При выполнении любых арифметических действий важное значение имеют такие электронные устройства, как двоичный полусумматор и двоичный сумматор, которые выполняют побитное двоичное сложение по ранее приведенным правилам. Для двоичного вычитания иногда используют и двоичный вычитатель. Приведем условное обозначение двоичных полусумматора и сумматора:
ai HS S ci ai SM S ci
bi P Pi Pi-1 P Pi
Рис.2.1 Условное обозначение полусумматора (а)
и двоичного сумматора (б).
Здесь a i и b i это i -тые разряды чисел А и В, которые складываются, а c i - i -тый разряд суммы этих чисел, Pi - перенос из данного разряда в соседний следующий старший, Pi-1 - перенос из соседнего младшего в данный разряд.
Если для представления двоичных чисел А, В, С и их знаков выделена
n -разрядная сетка, то очевидно, что для организации процедуры сложения необходимо n двоичных сумматоров, которые соединяются между собой по определенной схеме, зависящей от того в каком коде представляются эти двоичные числа: прямой, обратный или дополнительный.
Очевидно, что в арифметических устройствах цифровых автоматов помимо двоичных сумматоров используются также регистры, счетчики, различные триггера и электронные устройства, выполняющие различные логические процедуры. Обычно используемые регистры должны позволять не только параллельно записывать в них двоичные коды чисел, но и сдвигать изображения этих чисел влево и вправо на необходимое число двоичных разрядов.
Простейшую блок-схему узла, выполняющего процедуру сложения
A+B=C можно представить следующим образом:
где Рr - некоторые регистры, в которые записываются двоичные числа А, В и С; СM - сумматор, точнее группа сумматоров n SM, где n - длина разрядной сетки, отведенной для представления чисел А, В и С.
Помимо арифметических операций в цифровых автоматах реализуются также логические операции, которые подробно рассматриваются в последующих главах.
Кроме этих операций в цифровых автоматах, компьютерах, выполняется еще одна операция над двоичными числами - это сдвиг числа по разрядной сетке влево или вправо. В случае сдвига влево фактически осуществляется умножение двоичного числа на 2, а при сдвиге вправо - деление на 2, где - количество разрядов, на которое сдвигается двоичное число. Например: 0000112= 310 сдвинем влево на 2 разряда, получим 0011002 = 1210, т.е.
3х4(22) = 1210, а теперь 0010002 = 810 сдвинем на 2 разряда вправо, получим 0000102 = 210, т.е. 8:4(22) = 210.
В компьютерах часто используется циклический сдвиг, при выполнении которого разрядная сетка, отведенная для операнда, представляется замкнутой в кольцо. Тогда при сдвиге влево содержимое старшего разряда попадает в младший разряд операнда, а при сдвиге вправо - наоборот.
Двоичная арифметика
Наименование параметра | Значение |
Тема статьи: | Двоичная арифметика |
Рубрика (тематическая категория) | Информатика |
Двоичная система счисления
Системы счисления, используемые при работе с ЭВМ
Основание Р = 2. Алфавит включает две двоичные цифры: 0, 1. Любое число C = C n C n-1 …C 1 C 0 C -1 C -m есть сумма степеней числа Р = 2,
C = C n × 2 n +C n-1 × 2 n-1 +…+C 1 × 2 1 +C 0 × 2 0 +C -1 × 2 -1 +…+C -m × 2 -m
Пример 3.6.
101011,11 2 =1×2 5 + 0×2 4 + 1×2 3 + 0×2 2 +1×2 1 + 1×2 0 +1×2 -1 + 1×2 -2 = 32+8+2+1+0,5+0,25=43,75 10 .
Веса разрядов в двоичной системе счисления равны 1, 4, 8,16,... влево от запятой и 0,5; 0,25; 0,125; 0,625;... вправо от запятой.
При программировании иногда используется шестнадцатеричная система счисления. Для изображения цифр, больших 9, в шестнадцатеричной системе счисления применяются латинские буквы A, B, C, D, E, F. Изображения первых шестнадцати чисел в десятичной, двоичной и шестнадцатеричной системах счисления приведены в табл. 2.
Таблица кодов в различных системах счисления
Таблица 2
Десятичная система | Двоичная система | Шестнад-цатеричная система | Десятичная система | Двоичная система | Шестнад-цатеричная система |
А | |||||
B | |||||
C | |||||
D | |||||
E | |||||
F |
Двоично-десятичная система счисления получила большое распространение в современных ЭВМ ввиду легкости перевода в десятичную систему и обратно. Она используется там, где основное внимание уделяется не простоте технического построения машины, а удобству работы пользователя. В этой системе счисления все десятичные цифры отдельно кодируются четырьмя двоичными цифрами.
Пример 3.7.
Десятичное число 9703 в двоично-десятичной системе выглядит так: 1001 0111 0000 0011.
Преимущество двоичной системы счисления над десятичной с точки зрения ЦВМ состоит в следующем:
- требуются элементы с двумя устойчивыми состояниями;
- существенно упрощаются арифметические операции;
- оборудования требуется в 1,5 раза меньше;
- позволяет применить аппарат математической логики для анализа и синтеза схем.
Недостатки двоичной системы счисления состоят в следующем:
- большая длина записи чисел;
- при вводе и выводе информации требуется перевод в десятичную систему счисления.
Рассмотрим, как выполняются основные действия в двоичной арифметике.
Правила арифметики во всех позиционных системах счисления одинаковы, ᴛ.ᴇ. сложение, умножение и вычитание начинают с младших разрядов, деление - со старших.
При сложении единица переноса складывается с цифрами соседнего старшего разряда. При вычитании единица заема старшего разряда дает две единицы в младшем соседнем разряде.
Пример 3.8
Умножение двоичных чисел аналогично умножению десятичных, но т.к. умножаем только на 0 и 1, то умножение сводится к операции сдвига и сложения.
Пример 3.9
Двоичная арифметика - понятие и виды. Классификация и особенности категории "Двоичная арифметика" 2017, 2018.
Так как информационные процессы в цифровых системах принимают значения только 0 и 1, то и представления данных осуществляется с помощью двоичных чисел. Сложение и вычитание двоичных чисел, а так же и все остальные арифметические действия выполняются по тем же правилам, что... .
В двоичной системе счисления с числами можно производить те же действия, что и в десятичной системе счисления. Сложение выполняется по тому же принципу, что и в десятичной системе счисления: только если в данном разряде образуется сумма, которая в нем не умещается, то...
В простейшем случае, для одноразрядных чисел, правила двоичного сложения имеют вид:
При сложении () возникает два случая:
Многоразрядные числа складываются по тем же правилам, но при этом учитывается входной перенос в каждом разряде: выходной перенос младшего разряда является входным переносом для соседнего старшего разряда. Рассмотрим несколько примеров сложения многоразрядных чисел.
Двоичное вычитание
Здесь рассматриваются правила, работающие в случае вычитания меньшего числа из большего. Все остальные случаи рассматриваются ниже в разделе 3.2, посвященном двоичной арифметике со знаками. В простейшем случае, для каждого разряда, правила двоичного вычитания имеют вид:
Когда производится вычитание () осуществляется займ из более старшего разряда. Знак вопроса означает, что разряд уменьшаемого изменяется в результате займа по правилу:
При вычитании (0 - 1) в разряде разности получается 1, разряды уменьшаемого, начиная со следующего, изменяются на противоположные (инвертируются) до первой встречной единицы (включительно). После этого производится вычитание из измененных разрядов уменьшаемого .
Рассмотрим несколько примеров вычитания многоразрядных чисел (из большего числа вычитается меньшее).
Очевидно, что как в десятичном, так и в двоичном коде, складывать значительно проще, чем вычитать. Поэтому большое распространение получила двоичная арифметика с учетом знаков чисел, где вычитание заменяется сложением чисел с учетом их знака. При этом уже не имеет значения соотношение чисел между собой, какое из них больше - вычитаемое или уменьшаемое. Знак разности получается автоматически.
Двоичная арифметика с учетом знаков чисел
Прямой, обратный и дополнительный коды
В двоичном коде знак числа представляет собой разряд, приписываемый слева от значащих разрядов числа. Знак " " обозначается логическим , знак " " - логической . Для наглядности все примеры будем рассматривать для целых чисел, отделяя знаковый разряд точкой.
Прямой код (ПК) и для отрицательных, и для положительных чисел образуется одинаково, простым дописыванием знакового разряда .
Так, в восьмиразрядном формате
Обратный код (ОК) для положительных чисел совпадает с прямым, т.е. к значащим разрядам приписывается знаковый разряд. Для отрицательных чисел значащие разряды инвертируются (нули заменяются на единицы, единицы - на нули), после чего приписывается знак .
Для того же числа обратный код имеет вид: , .
Недостатком обратного кода является то, что одно и то же число и записывается по-разному: , , что может вызвать нежелательное разночтение работы логической схемы. Поэтому предпочтительным является дополнительный код.
Дополнительный код (ДК) для положительных чисел совпадает с обратным и прямым, т.е. к значащим разрядам приписывается знаковый разряд. Для отрицательных чисел дополнительный код на 1 больше, чем обратный. После образования значащих разрядов приписывается знаковый разряд .
Для значащих разрядов отрицательного числа справедлива формула:
(11.3) |
Напишем число в 7-разрядном дополнительном коде:
Таким образом в дополнительном коде , следовательно, указанный недостаток обратного кода преодолен.
Рассмотрим образование дополнительного кода для числа 10. Для положительного числа , а для отрицательного числа дополнительный ко д получается следующим образом:
Для замены вычитания сложением применяется и обратный , и дополнительный коды, при этом в каждом из них действуют свои правила.
Двоичная арифметика в дополнительном коде
Для наглядности возьмем два десятичных числа, например, и , и сделаем все возможные варианты вычислений:
- .
- . Сначала получим дополнительный код отрицательного числа :
Здесь важно уяснить, что крайние левые нули в значащих разрядах сокращать нельзя, поскольку они являются значимыми. Иными словами, все вычисления для каждого примера производятся в неизменном формате, в данном случае в примере (б) - это шесть значащих разрядов, т.е. столько, сколько содержится в большем числе.
Вновь получили знак числа и его значащие разряды, занимающие жестко заданные позиции в выбранном формате числа. Поскольку получено отрицательное число, то ДК ПК , для проверки его значащих разрядов нужно сначала вычислить обратный код , затем перевести его в прямой код инверсией -
а затем уже перевести его в десятичный код по (П3-2): .
- - Сначала получим ДК
отрицательного числа .
После этого произведем вычисления.
Число положительное, поэтому ОК=ПК , для проверки числа нужно перевести его значащие разряды в десятичный код по (П3-2): .
Цель работы. Научиться выполнять арифметические операции (сложение, вычитание, умножение и деления) с двоичными числами.
Правила выполнения арифметических действий над двоичными числами задаются таблицами двоичных сложения, вычитания и умножения.
Таблица двоичного сложения |
Таблица двоичного вычитания |
Таблица двоичного умножения |
01=0 10=0 11=1 |
Задание 1. Выполните сложение чисел в двоичной системе счисления 100100111,001 2 +100111010,101 2
Методические указания.
При сложении двоичных чисел в каждом разряде производится сложение цифр слагаемых и цифры, переносимой из соседнего младшего разряда, если она имеется При этом необходимо учитывать, что 1+1 дают нуль в данном разряде и единицу переноса в следующий разряд.
Примеры .
1) Выполнить сложение двоичных чисел X=1101, Y=111.
В приведенном примере в младшем нулевом разряде две единицы: 1+1=10 дают нуль в данном разряде и единицу переноса в следующий. В первом разряде: 0+1+1=10 (крайняя единица перенесена из нулевого разряда) дают 0 и единицу переноса в следующий. Во втором разряде 1+1+1=11(крайняя единицы перенесена из первого разряда) дают 1 и единицу переноса в следующий. В старшем третьем разряде 1 и единица переноса из предыдущего разряда дают 1+1=10.
Результат: 1101+111=10100.
2) Сложить три двоичных числа X=1101, Y=101, Z=111.
Результат: 1101+101+111=11001.
Задание 2. Выполните вычитание чисел в двоичной системе счисления: 1100110110,0011 2 – 11111110,01 2 .
Методические указания.
При вычитании двоичных чисел в данном разряде при необходимости занимается 1 из старшего разряда. Эта занимаемая 1 равна двум единицам данного разряда, так как 10=1+1.
Примеры .
1) Заданы двоичные числа X=10010 и Y=101. Вычислить X–Y.
Результат: 10010 2 – 101 2 = 1101 2 .
Замечание. Число 100…00 2 можно представить в виде суммы
Данное разложение на слагаемые объясняет правило вычитания в столбик. Если вы занимаете 1 из ближайшего старшего разряда, тогда над всеми следующими за единицей нулями следует дописывать 1, а над крайним нулем, для которого произведен заем, 1+1 или 10.
2) Выполнить вычитание: 1100000011,011 2 – 101010111,1 2
Результат: 1100000011,011 2 – 101010111,1 2 = 110101011,111 2 .
Задание 3. Выполните умножение чисел 11001 2 и 1011100 2 в двоичной системе счисления.
Методические указания.
Правила умножения двоичных чисел такие же, как и для умножения десятичных чисел в столбик, с использованием двоичного умножения и сложения.
Пример . Найти произведение 1001 2 101 2
101
Результат: 1001 2 101 2 =101101 2 .Задание 4. Выполните деление чисел 111101 2 и 1110 2 в двоичной системе счисления.
Методические указания.
Деление двоичных чисел производится так же, как и десятичных чисел, при этом используется двоичное умножение и вычитание.
Пример . Найти частное от деления 1100, 011 2 : 10, 01 2
Результат: 1100, 011 2 : 10, 01 2 =101, 1 2 .
Задания для самостоятельной работы
Заданы двоичные числа X и Y. Вычислить X+Y и X–Y , если: |
Заданы двоичные числа X и Y. Вычислить X*Y и X/Y , если: |
|
Х=100101,101 2 Y=11101,11 2 |
X=100101,011 2 Y=110,1 2 |
|
Х=101101,101 2 Y=1101,111 2 |
X=110000,11 2
Y= |
|
Х=110101,101 2 Y=11101,11 2 |
X=111001,0001 2 Y=1010,011 2 |
|
Х=1101111,101 2 Y=10101,11 2 |
X=111011,0001 2 Y=101,01 2 |
|
Х=1000111,11 2 Y=11101,111 2 |
X=111100,011 2 Y=101,11 2 |
|
Х=1110001,101 2 Y=10011,11 2 |
X=110110,101 2 Y=100,11 2 |
|
Х=1010001,101 2 Y=10011,11 2 |
X=100110,0001 2 Y=111,01 2 |
|
Х=1000011,101 2 Y=10011,011 2 |
X=101011,111 2 Y=110,11 2 |
|
Х=1101001, 101 2 Y=10111,11 2 |
X=1010110,101 2 Y=1000,01 2 |
|
Х=1010001,101 2 Y=1111,011 2 |
X=111111,01 2 Y=101,1 2 |
|
Х=101001, 101 2 Y=10111,111 2 |
X=1011010,101 2 , Y=111,01 2 |
|
Х=1010111, 101 2 Y=11100,111 2 |
X=1000101,0011 2 , Y=110,11 2 |
|
Х=110101,101 2 Y=1111,11 2 |
X=100101,011 2 , Y=110,1 2 |
|
Х=101111,101 2 Y=1101,111 2 |
X=100000,1101 2 , Y=101,01 2 |
|
Х=110101,011 2 Y=10011,11 2 |
Х=110111,11 2 Y=101,11 2 |
|
Х=1001011,11 2 Y=10101,101 2 |
Х=100101,11 2 Y=111,01 2 |
|
Х=100011,011 2 Y=10011,111 2 |
Х=100011,01 2 Y=1011,1 2 |
|
Х=1010001,101 2 Y=1011,011 2 |
Х=100001,101 2 Y=1001,01 2 |
|
Х=110001,101 2 Y=10111,11 2 |
Х=111001,101 2 Y=1101,11 2 |
|
Х=1000111,011 2 Y=11111,11 2 |
Х=1010111,011 2 Y=111,11 2 |
|
Х=111001, 101 2 Y=1110,111 2 |
Х=11100001, 101 2 Y=110,11 2 |
|
Х=100001,101 2 Y=1111,111 2 |
Х=1000001,101 2 Y=1111,01 2 |
|
Х=1011101, 101 2 Y=10111,011 2 |
Х=1010101, 101 2 Y=100,011 2 |
|
Х=1111000, 101 2 Y=101111,11 2 |
Х=1111001, 011 2 Y=1011,11 2 |
|
Х=1100000, 101 2 Y=1111,111 2 |
Х=1100011, 01 2 Y=11,111 2 |
Контрольные вопросы.
1. Каковы правила сложения двоичных чисел?
2. Каковы правила вычитания двоичных чисел?
3. Каковы правила умножения двоичных чисел?
4. Каковы правила вычитания двоичных чисел?