Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практическая работа №2. Выполнение арифметических операций в двоичной системе счисления..docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
43.93 Кб
Скачать

Двоичное деление

Деление - это операция, обратная умножению. Иначе говоря, при делении операцию вычитания повторяют до тех пор, пока уменьшаемое не станет меньше вычитаемого. Число этих повторений показывает, сколько раз вычитаемое укладывается в уменьшаемом.

Рассмотрим процедуру деления на примере:

Десятичное деление

Двоичное деление

204

12

1100 1100

1100

-

-

12

17

1100

10001

84

0 1100

-

-

84

1100

0

0

Процедура деления нам знакома и начинается с анализа старших разрядов делимого 20410 и делителя 1210. Мы обнаруживаем, что число 12 укладывается в число 20 только один раз, поскольку остаток (8) меньше делителя (12). Объединяя остаток со следующей цифрой делимого, получаем число 84 и снова определяем, сколько раз делитель (12) укладывается в 84. Результатом деления является частное, равное 17. Аналогично происходит и при делении в двоичной системе. Все, казалось бы, просто, но организовать такую процедуру в машине не столь просто, и поэтому был разработан несложный способ двоичного деления используемый в МП.

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

1210 = 01100 дополнительный код - 10100

Теперь переходим к так называемому длинному двоичному делению:

Будем вычитать из делимого делитель. О том, что делитель не укладывается в делимое, свидетельствует появление отрицательного результата вычитания (бит знака разности равен 1). Запишем в результат деления, частное - старший бит равный 0 и восстановим делимое. Если делитель укладывается в делимое (бит знака равен 0), то в частное запишем 1.

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

Рассмотрим пример:

011001100

делимое 20410

+

10100

вычитаемое 1210

000001100

первый результат

частное: 1....

Сдвинем результат

00001100

вторая операция:

третья операция:

00001100

0001100

+

+

10100

10100

10101100

1011100

частное: 10...

частное: 100..

четвертая операция:

пятая операция:

001100

01100

+

+

10100

10100

110100

1 00000

остаток

частное: 1000.

частное: 10001

Если мы сдвинем сейчас остаток еще раз, то он станет короче делимого, значит, операция деления завершена. Итак: 10001 = 1710

На практике МП оперирует числами известной длины, поэтому и разрядность результата известна заранее.