ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 31.12.2021

Просмотров: 468

Скачиваний: 6

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Лабораторна робота №2

1.1 Тема: Дослідження логічних елементів, логічні та арифметичні операції в двійковій системі

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

Обладнання: комплект логічних елементів, блок живлення, логічний пробник.

1.2 Теоретичні відомості

Числа, кодування і арифметична інформація.

Двійкові числа. Цифрові обчислювальні машини працюють з двійковими числами. Двійкова система зчислення або система з основою 2 використовує тільки цифри 0 і 1. Ці двійкові числа називаються бітами (від binary digit ). З фізичної точки зору в цифрових електронних системах біт 0 представлений напругою LOW (низьким), а біт 1 – напругою HIGH (високим).

Людська діяльність припускає використання десяткової системи зчислення. Десяткова система, або система із основою 10, містить 10 цифр (від 0 до 9).

Двійковій системі притаманна властивість врівноважування. Двійковому числу 10012 (читається: один, нуль, нуль, один) еквівалент 910 в десятковій. Біт одиниці двійкового числа називається молодшим бітом (МБ), біт вісімки – старшим бітом (СБ).

Як перетворити двійкове число 1011 0110 (тобто: один, нуль, один, один, нуль, один, один, нуль) в його десятковий еквівалент? Процедура перетворення виконується у відповідності з табл.1.1. Десяткові значення кожної позиції записані під кожним бітом, потім десяткові числа підсумовуються (128+32+16+4+2=182), що дає 182.

Таблиця 1.1 – Двійково-десяткові перетворення.

Степінь основи

27

26

25


24

23

22


21

20


Значення позицій

128

64

32


16

8

4


2

1


Двійкові

1

0

1


1

0

1


1

0


Десяткові

128

+

32

+

16

+

4

+

2

=

182

Зазвичай основа системи зчислення вказується індексами. Таким чином, число 1011 01102 є двійковим (тому що основа 2), а число 18210 – десятковим: 1011011012 = 18210.

Як перетворити десяткове 155 в його двійковий еквівалент? Процедура перетворення приведена на рисунку 1.1.

Shape1
Десяткове спочатку ділиться на 2, що нам дає часткове 77 залишок 1. Цей залишок стає МБ двійкового числа і розміщується в цю позицію (див. рисунок 1.1.). Потім часткове (77) переміщується, як показує стрілка, і стає наступним, що буде ділитися. Потім кожне часткове поступово ділиться на 2 до тих пір, поки не отримаємо часткове, рівне 0, і залишок рівний 1 (див. останній рядок на рис. 1.1). Останній рядок дає нам результат 15510=100110112.

Шістнадцяткові числа.

Комірка пам’яті мікро – ЕОМ може містити двійкове число 10011110. Такий довгий ланцюжок нулів і одиниць складний для запам’ятовування і незручний для введення з клавіатури. Число 1001 1110 могло б бути перетворене в десяткове, що дало б 15810, але процес перетворення зайняв би багато часу. Більша частина систем мікроінформатики використовують шістнадцяткову форму запису, щоб спростити запам’ятовування і використання таких двійкових чисел, як 1001 1110.


Шістнадцяткова система зчислення ( hexadecimal ), або система із основою 16, використовує 16 символів від 0 до 9 і А, B, C, D, E, F. Потрібно зауважити, що кожний шістнадцятковий символ може бути представлений єдиним сполученням чотирьох бітів. Таким чином, представленням двійкового числа 1001 1110 в шістнадцятковому коді є число 9Е. Це значить, що частина 1001 двійкового числа дорівнює 9, а друга частина 1110 дорівнює Е (звичайно, в шістнадцятковому коді). Звідси, 1001 11102 = 9Е16. (не слід забувати, що індекси означають основу системи зчислення).

Як перетворити двійкове число 0111010 в шістнадцяткове? Потрібно розпочати з МБ і розділити двійкове число на групи із 4 бітів. Потім потрібно замінити кожну групу із 4 бітів еквівалентною шістнадцятковою цифрою: 10102 = А, 00112 = 3, звідси, 1110102 = 3 А16.

Як перетворити шістнадцяткове число 7F в двійкове? В цьому випадку кожна шістнадцяткова цифра повинна бути замінена своїм двійковим еквівалентом з 4 біт. В прикладі двійкове число 0111 замінене шістнадцятковою цифрою 7, а 11112 замінене F16, звідки 7F16 = 011111112.

Перетворимо шістнадцяткове число 2С6Е в десяткове. Процедурі дій перетворення відповідає табл. 1.2. Значення позицій перших чотирьох шістнадцяткових цифр є, відповідно, зліва направо 4096, 256, 16 і 1. Десяткове число містить 14 (Е16) одиниць, 6 чисел 16, 12 (С16) чисел 256 і 2 числа 4096. Кожна цифра множиться на відповідну її вагу, одержуємо суму, яка і дає нам десяткове число 11374.

Таблиця 1.2 — Перетворення шістнадцяткового числа в десяткове

Степінь шістнадцяти

163


162


161


160


Значення позиції

4096

256

16

1

Шістнадцяткове

2

С

6

Е

4096

256

16

1

Десяткове

+

+

+

=113710

Перетворимо десяткове число 15797 в шістнадцяткове. На рис. 1.2. показна процедура дій. В першому рядку 1579710 розділено на 16, що дає часткове 98710 і залишок 510 який потім перетвориться в свій шістнадцяткових еквівалент (510=516) і стає цифрою молодшого розряду (МР) шістнадцяткового числа. Перше часткове (987) ділиться в другому рядку і знову ділиться на 16, що дає часткове і залишок 1110 або шістнадцяткове В. В третьому рядку 61 ділиться на 16, дає часткове 3 і залишок 1310 або D16 , а в четвертому рядку ділиться 3 на 16, дає часткове 0 і залишок 310 або 316. Коли часткове рівне 0, як в четвертому рядку, перетворення закінчується. 316 стає цифрою старшого розряду (СР) результату, тобто, 3DB516.

Двійково-десяткові числа

З метою зручності перетворення чисті двійкові числа представляються десятковими або шістнадцятковими. Однак, двійково-десяткове перетворення – операція не проста. В калькуляторах, магістралях і числових приладах, коли на доступних користувачу виходах і входах широко розповсюджені десяткові числа, для їх представлення використовують спеціальний двійково-десятковий код (ДДК). В табл. 1.3 наведено декілька десяткових чисел і відповідних їм двійково-десяткових еквівалентів (система 8421). Цим визначаються ваги позицій кожного з чотирьох бітів ДДК (використовують інші ДДК, наприклад 5421 і плюс 3).


Shape2
Таблиця 1.3 – Двійково-десятковий код

Десяткове число

Двійково-десяткові числа

8

4

2

1

0

0

0

0

0

1

0

0

0

1

2

0

0

1

0

3

0

0

1

1

4

0

1

0

0

5

0

1

0

1

6

0

1

1

0

7

0

1

1

1

8

1

0

0

0

9

1

0

0

1

Запишемо десяткове число 3691 в ДДК 8421. Кожна десяткова цифра перетворюється прямо в свій двійково-десятковий еквівалент із 4 бітів, і перетворення дають 369110=0011 0110 1001 0001ДДК.

Перетворимо тепер двійково-десяткове число 1000000001110010 в його десятковий еквівалент. Кожна група із 4 бітів прямо перетворюється в її десятковий еквівалент, і тоді отримуємо 1000 0000 0111 0010ДДК = 807210:

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

Двійкова арифметика

Додавання, віднімання або множення двійкових чисел виконується так само, як і в арифметиці двійкових чисел. Більшість мікропроцесорів мають команди додавання і віднімання двійкових чисел, однак деякі, менш багаточисельні виконують команди множення і ділення (наприклад, мікропроцесори INTEL 8086 і INTEL 8088).

На рис.1.3, а запропоновані прості правила двійкового додавання. Два перших (зліва) правила очевидні, третє показує, що 1+1=10, тобто, найбільш значуща 1 переноситься в ближчий старший розряд. Четверте правило, на кінець, показує, що 1+1+1=11. В цьому випадку перший, другий доданки і запам’ятовувальне в результаті додавання в молодшому розряді число – все 1.

Shape3





Запамятовування з менш значущої

позиції

а)



1

1

1

1-ий доданок

2-ий доданок

0

+

0

0

+

1

1

+

1

1

+

1

Сума

0

1

10

11


111 1

00111011

+

00101010

Переноси

1

59

+

42

б)

1-ий доданок


2-ий доданок

Сума

011001012


10110

а – правило; б – приклад

Рисунок 1.3 – Двійкове додавання

Додамо двійкові числа 0011 1011 і 0010 1010 (операція показана на рис.1.4,б). Для великої ясності дії з десятковими еквівалентами, числа що оброблюються, показані на рисунку справа. Сумою двох чисел 0011 1011і 0010 1010 буде 0110 01012.

На рис.1.4, а наведені правила двійкового віднімання. Перші три аналогічні десятковому розрахуванню. Останнє потребує займу з більш значущого попереднього розряду ( в цьому випадку вага 2). Зменшувальним є двійкове число 10, відємником 1, різницею – 1.







10

1 10


010 010


Зменшувальне

0

1

1

10

01010101

85

Відємник

0

0

1

1

00111001

57

Різниця

1

1

0

1

000111002

2810

а)

б)

а) – правила; б) – приклад

Рисунок 1.4 – Двійкове віднімання

Віднімаємо двійкове число 0011 1001 від 0101 0101. Цей приклад наведений на рис.1.4, б. Розряди ваг 1, 2 і 4 цього двійкового обчислення прості для виконання і відносяться до перших трьох правил на рис.1 .5, а. В колонці ваги 8 має місце віднімання 1 з 0. Тоді 1 запозичується із колонки ваги 16. Одиниця віднімається із 102, що дає різницю 1 згідно з четвертим правилом на рис. 1.5, а. Після цього запозичення в колонці ваги 16 має місце віднімання 1 з 0. Згідно з четвертим правилом 1 повинна бути запозичена із наступної, більш значущої позиції (колонка ваги 32), але в колонці 32 маємо 0; тому колонка 32 повинна запозичити з колонки ваги 64, що і зроблено. На кінець колонка 16 стає 102, відємник 1, різниця 1. В колонці 32 маємо 1-1=0, в колонці 64 – 0-0=0, в колонці 128 – 0-0=0. таким часом, рис. 1.5,б ілюструє операцію обчислення 0011 10012 із 0101 01012 ( справа ця задача вирішена в десятковому записі).

Наведемо правила десяткового множення:

Множене

0

1

0

1


Множники

0

0

1

1

Добутки

0

0

0

1

Два перших правила не потребують пояснення. В двох наступних множником є 1: коли множником є 1 при двійковому множенні, множене стає результатом і представляє собою добуток. Коли множник 0, добуток завжди 0.

Виконаємо множення 1101 на 101. Як і у випадку множення десяткових чисел, множене спочатку множиться на число, що стоїть в молодшому розряді ( у випадку, що розглядається – біт в колонці ваги 1).

Оскільки біт множника в розряді ваги 1 є 1, множене копіюється і складає перший частковий добуток. Другим бітом множника є 0, тоді другий частковий добуток дорівнює 0000 (він зсунутий на одну позицію вліво). Бітом розряду ваги 4-го множника є 1, тоді для отримання третього часткового добутку знову слідує копіювання множеного ( копіювання завершується новим зсувом на одну позицію вліво). Після цього виконуємо додавання трьох часткових добутків, що дає результат 110121012=10000012 відповідає добутку десяткових чисел 1310510=6510.

Множене

1101

101

13

5


Множник

1-ий частковий добуток

1101

0000

1101

6510

2-ий частковий добуток

3-ій частковий добуток

Кінцевий добуток

10000012

Додатковий код.

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


Звичайний регістр МП представляють простором із 8 бітів даних. Позиції бітів пронумеровані від 7 до 0, а ваги двійкових позицій вказані в основі регістра, біт 7 має вагу 128, біт 8 – 64 і так далі.

В обох випадках біт 7 є знаковим. Він показує, чи є число додатним (+) або від’ємним (–). При 0 в знаковому біті число додатне, при 1 – від'ємне.

Якщо число додатне, ті комірки памяті (6-0), що зосталися, містять двійкове 7–розрядне число. Наприклад, якщо регістр містить 0100 0001, це відповідає числу +6510 (64+1, знаковий біт додатний). Якщо в нього записано 0111 1111, буде містити +12710 (знаковий біт додатний: 0+64+32+16+8+4+2+1), що є найбільшим додатним числом, яке може містити 7-розрядний регістр.

В табл. 1.4 наведений запис в додатковому коді додатних та від'ємних чисел. Всі додатні числа мають 0 в старшому біті, інші біти складають двійкове число. Всі від’ємні числа мають 1 в старшому розряді. Розглянемо рядок +0 в табл. 1.4: запис в додатковому коді +0 буде 0000 0000. В найближчому нижньому рядку бачимо, що запис в додатковому коді – 1 такий: 1111 1111. Розглянемо покрокове переміщення в зворотному напрямку від 0000 0000 до 1111 1111.