Головна |
2.3.1.Вибрати завдання з таблиці 2.1 у відповідності до порядкового номера в журналі групи.
Таблиця 2.1 - Варіанти індивідуальних завдань
Номер варіанта | |||||||||||||||
Дані |
Номер варіанта | |||||||||||||||
Дані |
2.3.2. Виконати перекладання вибраного з таблиці 2.1 десяткового (спочатку додатного, а потім від'ємного) числа в двійковий код - прямий, зворотний і додатковий. Для зображення двійкового коду використати поле довжиною 1 байт.
2.3.3. Відносно отриманого в п.2.3.2 двійкового зображення додатного і від'ємного числа в додатковому коді виконати побітові логічні операції з метою:
1) проінвертувати отримане число;
2) встановити вибраний біт в задане число ;
3) визначити значення вибраного біта;
4) скинути вибраний біт;
5) проінвертувати вибраний біт.
2.4. Хід отримання результатів (наприклад, для варіанта № 30 із таблиці 2.1)
2.4.1. У результаті перекладання вибраного з таблиці 2.1 десяткового числа 23 в двійковий додатковий код будемо мати результати, наведені нижче.
1) Для числа А10 = 23 без знака.
У полі довжиною, наприклад, 1 байт будуть розміщені значущі 8 двійкових цифр. Їх можна отримати одним з двох способів:
Перший спосіб (за степенями 2) | Другий спосіб | |||||||||||
Ділимо на 2 | Остачі | № розрядів | ||||||||||
Відповідний № біта | 23 дорівнює сумі | :2 | ||||||||||
:2 | ||||||||||||
:2 | ||||||||||||
:2 | ||||||||||||
Двійкове зображення числа 23 | ||||||||||||
Таким чином, маємо:
А10 = 2310 -> А2 = 000101112.
2) Для числа А10 = + 23.
У додатного числа прямий, зворотний і додатковий коди однакові. Будемо зараз мати код, який отримали вище, але 7‑й біт тепер - знаковий, а біти з 0-го по 6‑й - значущі цифри двійкового числа. Значення знакового біта для додатного числа дорівнює 0.
Таким чином, маємо:
А10 = + 2310 -> А2 = 000101112.
6) Для числа А10 = - 23.
Щоб отримати додатковий код від'ємного числа, треба прямий код додатного числа проінвертувати (отримаємо при цьому зворотний код від'ємного числа) і виконати операцію підсумовування отриманого числа з одиницею. Значення знакового біта для від'ємного числа дорівнює 1.
Таким чином, маємо:
А10 = - 2310 -> А2 = 111010012
(зворотний двійковий код числа А10 = - 23 є Азк = 1 1101000).
2.4.2. Виконаємо вказані в п.2.3.2 дії з використанням побітових логічних операцій над усіма бітами двійкового коду числа 23 (знак числа зараз нема потреби розглядати окремо).
В комп'ютері найбільшого поширення набули такі логічні операції: інвертування (NOT), операція "АБО" (OR), операція "І" (AND) та операція "Складання, що виключає", тобто "ЧИ" (XOR). Дані операції виконуються над окремими бітами, і особливості їх виконання наведені в таблиці 2.2.
Операція NOT виконується над одним числом. Для виконання решти з перелічених операцій треба мати по два числа. Отримання очікуваного результату може передбачати використання в якості одного з чисел "маски", тобто заздалегідь відомого двійкового коду.
Таблиця 2.2 - Побітові логічні операції
Операція | Опис | Біт 1 | Біт 2 | Біт результату |
NOT | Інвертування | |||
AND | Множення | |||
OR | Складання | |||
XOR | Складання, що виключає | |||
1) Проінвертувати число А10 = 23.
Виконаємо побітову логічну операцію інвертування, тобто NOT.
NOT | ||||||||
2) Встановити значення п'ятого біта числа А10 = 23 в 1.
Для цього виконаємо побітове логічне складання (побітова логічна операція АБО, тобто OR) даного числа і числа, у якого 1 тільки в п'ятому біті (25 = 32).
OR | ||||||||
3) Визначити значення першого і п'ятого бітів числа 23:
а) виконаємо побітове логічне множення (побітова логічна операція І, тобто AND) даного числа і числа, у якого 1 тільки в першому біті (21 = 2).
AND | ||||||||
Результат не дорівнює 0, отже, в першому біті знаходиться 1;
б) виконаємо побітове логічне множення (побітова логічна операція І, тобто AND) даного числа і числа, у якого 1 тільки в п'ятому біті (25 = 32).
AND | ||||||||
Результат дорівнює 0, отже, в п'ятому біті знаходиться 0.
4) Скинути четвертий біт числа 23 в 0.
Для цього виконаємо побітове логічне множення (побітова логічна операція І, тобто AND) даного числа і числа, у якого 0 тільки в четвертому біті (27+26+25+23+22+21+20 = 237).
AND | ||||||||
5) Проінвертувати шостий біт числа 23.
Для цього виконаємо побітову логічну операцію XOR над даним числом і числом, у якого 1 тільки в шостому біті (26 = 64).
XOR | ||||||||