Перед тим, як розглянути формальні правила двійковій арифметики підкреслимо загальний принцип додавання і віднімання чисел представлених в будь-який позиційної системи числення.
У загальному випадку процедури додавання і віднімання двох чисел
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.
У комп'ютерах часто використовується циклічний зсув, при виконанні якого розрядна сітка, відведена для операнда, представляється замкнутої в кільце. Тоді при зсуві вліво вміст старшого розряду потрапляє в молодший розряд операнда, а при зсуві вправо - навпаки.