Арифметичні дії над числами в двійковій системі числення

Правило порозрядного складання чисел в двійковій системі числення задається такою таблицею:

 

0+0=0 0+1=1+0=1 1+1=10,

 

тобто при складанні двох одиниць в розряді складання залишається нуль, але виконується перенесення одиниці в старший розряд.

Нижче дані приклади складання двох позитивних двійкових чисел:

 

00101001 01101.10

+ 01010111 + 01011.011

10000000 11000.111

 

Розглянутий нами раніше спосіб запису числа у вигляді знакового розряду і модуля числа називають прямим кодом. Проте негативні числа можуть також представлятися в зворотному і додатковому кодах.

Для здобуття зворотнього кода негативного числа необхідно в знаковому розряді записати “1”, а інші розряди числа інвертувати, тобто замінити “0” на “1”, а “1” на ”0”.

Для здобуття додаткового кода негативного числа необхідно в знаковому розряді записати “1”, решту розрядів числа інвертувати і в молодший розряд додати одиницю (тобто до зворотного коду числа додати одиницю).

Для позитивних чисел прямой, зворотний і додатковий коди збігаються.

 

Коди Зн. Зн.

Приклад: прямий 1|0010111 0|101010

зворотний 1|1101000 0|101010

додатковий 1|1101001 0|101010

 

Зворотний і додатковий коди використовуються в двійковій арифметиці для зведення операції віднімання до операції складання, тобто

 

А – В = А + (-В).

 

Задамо правила алгебраічного складання двійкових чисел в зворотньому і додатковому кодах:

 

1. При складанні чисел в зворотньому коді складання виконується розряд за розрядом, включаючи знаковий, при цьому перенесення із знакового розряду, якщо воно виникає, додається до молодшого розряду суми, яка також виходить в зворотньому коді.

2. При складанні чисел в додатковому коді складання також виробляється розряд за розрядом, включаючи знакові розряди, при цьому можливе перенесення із знакового розряду ігнорується.

Приклад (використане однобайтне представлення, включаючи знаковий розряд):

510 - 7910 = 8310 -310 =

зворотний 00000101 01010011

код: 10110000 11111100

10110101 = -7410 101001111

1

01010000 = 8010

додатковий 1710 - 510 =

код: 00010001

11111011

перенесення 00001100 = 1210

проигнороване

 

Множення двійкових багаторозрядних чисел виробляється шляхом утворення часткових добутків і подальшого їх підсумовування. Кожен частковий добуток дорівнює нулю, якщо у відповідному розряді множника стоїть 0, або рівен множнику, зсунутому на відповідне число розрядів вліво, якщо в розряді множника стоїть 1. Таким чином, операція множення багаторозрядних двійкових чисел у ЕОМ зводиться до операцій зсуву і складання. Положення крапки, що відділяє цілу частину від дробової частини, і знак результату визначаються так само, як і при множенні десяткових чисел.

Приклад. Перемножити в двійковій системі числення десяткові числа 7,5 і 5.

 

    111.1 множене X
  101 множник
7.5 x 5 > 1111 1-й частковий добуток + 0000 2-й частковий добуток
37.5   1111 3-й частковий добуток 100101.1 добуток  

 

 

У розглянутому прикладі другий розряд множника дорівнює нулю, тому другий частковий добуток також дорівнює нулю.

Можна показати, що операція ділення чисел в двійковій системі числення також зводиться до операцій складання і зсуву. А оскільки будь-які обчислення (у тому числі обчислення елементарних, спеціальних функцій, інтегралів, похідних і тому подібне) з кінцевою точністю можна звести до послідовності з основних арифметичних операцій, то ми приходимо до висновку, що базовим арифметичним блоком в ЕОМ є двійковий суматор.

Коротко зупинимося на виконанні арифметичних операцій над числами з плаваючою комою. При складанні (відніманні) чисел з однаковими порядками їх мантиси складаються (віднімаються), а результату привласнюється порядок, загальний для вихідних чисел. Якщо порядки вихідних чисел різні, то спочатку ці порядки вирівнюються (число з меншим порядком наводиться до числа з більшим порядком), потім виконується операція складання (віднімання) порядків. Якщо при виконанні операції складання мантис виникає переповнювання, то сума мантис зрушується управо на один розряд, а порядок суми збільшується на 1.

При множенні чисел з плаваючою комою їх мантиси перемножуються, а порядки складаються.

При діленні чисел з плаваючою комою мантиса ділимого ділиться на мантису дільника, а для здобуття порядку частки з порядку ділимого віднімається порядок дільника. При цьому якщо мантиса ділимого більше мантиси дільника, то мантиса частки виявиться більше 1 (відбувається переповнювання) і її слід зрушити на один розряд управо, одночасно збільшивши на одиницю порядок частки.

 

 

Контрольні запитання

 

1. Що містить таблиця кодування символьної інформації? Які типи кодировок Ви знаєте? Наведіть приклад.

2. Скільки символів в кодировці ASCII і скільки в Unicode?

3. Чому при представленні текстовій інформації в мережі інтернет частіше застосовують однобайтні кодировки?

4. Для чого в двійковій арифметиці використовують зворотний і додатковий коди?

5. Сформулюйте правила складання двійкових чисел в зворотному і додатковому кодах.

6. До яких елементарних операцій можна звести множення двійкових чисел?

7. Як виконуються арифметичні операції над числами з плаваючою комою?