Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Бичков - Основи сучасного програмування.doc
Скачиваний:
81
Добавлен:
07.03.2016
Размер:
3 Мб
Скачать
☆

5.4.4. Множення двійкових чисел

Операція множення у двійковій системі числення цікава своєю реалізацією. Для того, щоб помножити двійкове число на 2 (десяткова двійка – це 10 у двійковій системі), достатньо до числа, що множиться, праворуч приписати один нуль.

Розглянемо кілька прикладів.

1. Виконати 10101 * 10  101010.

Ми знаємо, що будь-яке двійкове число розкладається за степенями двійки, тому множення у двійковій системі числення зводиться до множення на 10 (тобто на десяткову двійку), отже, множення – це низка послідовних зсувів. Загальне правило таке: як і для десяткових чисел, множення двійкових виконується порозрядно. І для кожного розряду другого множника до першого множника дописується один нуль праворуч.

2. Помножити два числа: 1011 і 101.

Це множення можна звести до суми трьох порозрядних множень:

1011 * 1  1011 * 0  1011 * 100  1011 101100  110111.

До стовпчика те саме можна записати як

 

 

1

0

1

1

 

*

 

1

0

1

 

 

1

0

1

1

 

0

0

0

0

 

1

0

1

1

 

 

1

1

0

1

1

1

5.4.5. Ділення двійкових чисел

Нехай нам необхідно розділити два десяткових числа, наприклад 234 на 7:

2

3

4

7

 

 

 

 

 

 

У діленому спочатку виділяємо праворуч від старшого розряду таку кількість цифр, щоб число, яке вийшло, було мінімальним і, у той самий час, більше дільника. У даному прикладі необхідне нам число – це 23. Потім ділимо отримане число на дільник із залишком.

Описану операцію повторюємо, доки залишок не виявиться менше дільника. Тоді число під рискою – це частка, а останній залишок – залишок операції.

Операція ділення двійкових чисел виконується так само.

Розглянемо кілька прикладів.

1. Виконати операцію ділення 10010111 : 101:

1

0

0

1

0

1

1

1

1

0

1

 

 

 

 

 

 

 

 

 

 

 

Рухаючись від старшого розряду, шукаємо перше число, яке буде більше дільника. Це чотирирозрядне число 1001. Тепер необхідно знайти цілочисельний результат ділення виділеного числа на дільник. І тут ми знову виграємо порівняно з десятковою системою. Справа в тому, що число, яке підбирається, обов'язково є цифрою, а цифри в нас тільки дві. Оскільки 1001 явно більше 101, то тут усе зрозуміло – це 1. Виконаємо крок операції:

 

1

0

0

1

0

1

1

1

1

0

1

–

 

1

0

1

 

 

 

 

1

 

 

 

 

1

0

0

 

 

 

 

 

 

 

Залишок від виконаної операції становить 100. Це менше ніж 101, тому, щоб виконати другий крок, необхідно дописати до 100 наступну цифру – цифру 0. Дістанемо:

 

1

0

0

1

0

1

1

1

1

0

1

–

 

1

0

1

 

 

 

 

1

 

 

 

 

1

0

0

0

 

 

 

 

 

 

1000 більше 101, тому на другому кроці ми знову допишемо в частку цифру 1 та одержимо

 

1

0

0

1

0

0

1

1

1

0

1

–

 

1

0

1

 

 

 

 

1

1

 

 

 

1

0

0

0

 

 

 

 

 

 

 

–

 

1

0

1

 

 

 

 

 

 

 

 

 

 

1

1

0

 

 

 

 

 

Після кількох ітерацій маємо

 

1

0

0

1

0

0

1

1

 

1

0

1

 

 

–

 

1

0

1

 

 

 

 

 

1

1

1

0

1

 

 

1

0

0

0

 

 

 

 

 

 

 

 

 

 

–

 

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

0

 

 

 

 

 

 

 

 

 

 

 

–

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

 

 

 

 

 

 

 

 

 

 

 

–

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

 

 

 

 

 

 

Отриманий залишок 10 менше 101, але в нас закінчилися цифри в діленому, тому 10 – це остаточний залишок, а 1110 – шукана частка.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]