Предмет:
Тип роботи:
Лабораторна робота
К-сть сторінок:
10
Мова:
Українська
ЛАБОРАТОРНА РОБОТА №2
Тема: Переведення чисел. Доповнювальний, прямий і зворотній код. Операції над цілими числами у двійковій системі числення
ТЕОРЕТИЧНІ ПОЛОЖЕННЯ
1. Операції над цілими числами у двійковій системі числення. Доповнювальний, прямий і зворотній код.
Правила виконання арифметичних дій над двійковими числами задаються таблицею1. Правила арифметики в усіх позиційних системах аналогічні.
Таблиця 1. – Правила виконання арифметичних дій над двійковими числами
При здійсненні обчислень, звичайно, доводиться мати справу не тільки з цілими невід’ємними числами, але також з від’ємними.
У програмуванні виділяють два типи чисел: беззнакові та знакові. Всі беззнакові числа вважаються невід’ємними, і всі їх розряди використовуються для задання абсолютної величини числа. Так, за допомогою одного байту можна закодувати цілі беззнакові числа від 0 до 255.
Для представлення ж від’ємних чисел слід виділити один біт для знаку. Як правило, це старший біт. Якщо один біт в числі виділяється під його знак, таке число називається знаковим. Як правило, 0 у старшому (крайньому зліва) біті відповідає додатнім числам, а 1 – від’ємним.
Представлення від’ємних чисел залежить від кількості байтів, яка відводиться на число. Для визначеності будемо розглядати однобайтові знакові числа.
Виділяють три основних способи представлення від’ємних чисел:
- прямий код, який утворюється з коду відповідного додатного числа шляхом встановлення знакового біта в 1;
- обернений код, який утворюється шляхом заміни значення кожного біта на протилежне;
- додатковий код, який утворюється шляхом додавання 1 до молодшого біта оберненого коду.
Приклад. Розглянемо число -3. Двійковим еквівалентом відповідного додатного числа 3 є 00000011.
Прямий код. Встановимо знаковий біт в 1 (нагадаємо, що 1 в старшому біті знакового числа сигналізує про його від’ємність). Всі інші біти залишаються без змін. В результаті вийде 10000011.
Обернений код. Замінимо кожний біт на протилежний (1 на 0; 0 на 1) ; результатом буде 11111100.
Додатковий код. Додамо 1 до оберненого коду; в результаті вийде 11111101. Зверніть увагу, що якщо розглядати послідовність 11111101 як беззнакове, а не як знакове число, вона інтерпретується як додатнє число 253.
Приклад 1. Числа А, -А, С и -С представити в прямому, оберненму (зворотньому), доповнюваному кодах.
Приклад 3. Виконати додавання чисел, представленних в машинних кодах: A+C; -A+C; A+ (- C) ; -A+ (- C).
Зауваження. В ЕОМ операції віднімання, множення, ділення здійснюються за допомогою операції додавання. Наприклад, при відніманні від'ємник записується у доповняльному коді і віднімання заміняється додаванням.
Приклад 4: 23 + 22 = 45
Приклад 5: 23 – 13 = 23 + (-13) = 10
(-13) 10 = (1 0001101) пр. = (1 1110010) об. = (1 1110011) доп.
Приклад 6: 7 – 13 = 7 + (-13) = -6
Оскільки результат від'ємний (біт знаку містить одиницю), то він представлений у доповняльному коді. Для перевірки правильності виконання операції потрібно перейти до прямого коду, який визначає абсолютне значення результату. Для цього потрібно:
1. відняти від доповняльного кода 1: 11111010дк. – 00000001 = 11111001об.
2. проінвертувати обернений код для переходу до прямого: 10000110пр.
1 0010100пр. – прямий двійковий код числа (-20) 10
Виконання логічних операцій з цілими числами, представленими в машинних кодах
Кількість логічних операцій може бути обчислено за формулою , де n – число змінних. Із формули видно, що для двох змінних a і b логічних операцій 16. Основні із них: логічне додавання, логічне множення, логічне не, додавання по модулю 2.
Для виконання логічних операцій, використовують таблиці істинності:
Логічне додавання
КОНТРОЛЬНІ ЗАПИТАННЯ
- Опишіть виконання арифметичних операцій в двійковій системі числення.
- Яка відмінність між знаковими і беззнаковими числами?
- Вкажіть, які існують способи представлення від’ємних чисел. Опишіть ці способи.
ЗАВДАННЯ
Завдання1. Записати в прямому коді наступні числа (n=8) :
Завдання 2. Записати в доповнювальному коді наступні числа (n=8) :
Завдання 3. Зобразити у зворотньому і доповнювальному кодах від’ємні числа (n=8) :
Завдання 4. Скориставшись доповнювальними кодами чисел, розрахувати S=A+B (n=8) :
Завдання 5. Скориставшись доповнювальними кодами чисел, розрахувати R=A-B (n=8), якщо: