Формальні правила двійковій арифметики

Перед тим, як розглянути формальні правила двійковій арифметики підкреслимо загальний принцип додавання і віднімання чисел представлених в будь-який позиційної системи числення.

У загальному випадку процедури додавання і віднімання двох чисел

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

Розподіл чисел в двійковій системі проводиться за правилами множення і віднімання.

110. 11 = 10 610. 310 = 210

Арифметичні дії з двійковими числами детально будуть розглянуті в подальшому.

При виконанні будь-яких арифметичних дій важливе значення мають такі електронні пристрої, як двійковий полусумматор і двійковий суматор, які виконують побітно двоичное складання по раніше наведеним правилам. Для двійкового віднімання іноді використовують і двійковий вичітатель. Наведемо умовне позначення двійкових полусумматора і суматора:

ai HS S ci ai SM S ci

bi P Pi Pi-1 P Pi

Рис.2.1 Умовне позначення полусумматора (а)

і довічного суматора (б).

Тут ai і bi це i -тие розряди чисел А і В, які складаються, а ci - 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.

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