|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Варіанти індивідуальних завданьПрактична робота №2 ПОРОЗРЯДНІ (ПОБІТОВІ) ОПЕРАЦІЇ
Теоретичні відомості
Це операції, що здійснюються над комірками пам’яті, що містять дані типу char та int. Дані типів float, double, long double та інші складні не можуть приймати участь у порозрядних операціях.
& - Операція І (AND)
Якщо біт одного з операндів =0, то відповідний біт результату буде =0, незалежно від значення відповідного біта іншого операнда. Таблиця істинності:
Приклад A=5 B=12 A&B=? Розв’язання: A = (5)10 = (0101)2 B = (12)10 = (1100)2 A&B = (0101)2 & (1100)2 = (0100)2 = (4)10 Програма #include "stdafx.h" #include <locale.h> #include <conio.h> int main() { setlocale(0,""); int A, B; printf("\nВедіть A: A = "); scanf_s("%d",&A); printf("\nВедіть B: B = "); scanf_s("%d",&B); printf("\nA & B = %d",A&B); getch(); return 0; } Операція & може бути використана для очищення (занулення) бітів. Приклад Очистити біти 2 і 5 у числа 66. Розв’язання 1. Переводимо число у двійкову форму:(66)10 = (1000010)2 2. Готуємо маску: (1101101)2 = (109)10 3. Накладаємо маску на число: (1000010)2 (1101101)2 &---------- (1000000)2 4. Результат: 66 & 109 = 64
| - Операція АБО (OR)
Якщо біт хоча б одного з операндів =1, то відповідний біт результату буде =1, незалежно від значення відповідного біта іншого операнда. Таблиця істинності:
Приклад A=5 B=12 A|B=? Розв’язання: A = (5)10 = (0101)2 B = (12)10 = (1100)2 A|B = (0101)2 |(1100)2 = (1101)2 = (13)10 Операція | може бути використана для встановлення бітів. Приклад Встановити біти 2 і 5 у числа 66. Розв’язання 1. Переводимо число у двійкову форму:(66)10 = (1000010)2 2. Готуємо маску: (1101101)2 = (109)10 3. Здійснюємо операцію: (1000010)2 (1101101)2 |---------- (1101111)2 4. Результат: 66 | 109 = 111
^ - Виключаюче АБО (XOR) Встановлення біта результата в 1, якщо відповідні біти результатів різні. Таблиця істинності:
Приклад A=5 B=12 A^B=? Розв’язання: A = (5)10 = (0101)2 B = (12)10 = (1100)2 A|B = (0101)2 |(1100)2 = (1001)2 = (9)10 Приклад Знайти суму за модулем 2 чисел 66 і 109. Розв’язання 1. Переводимо число 66 у двійкову форму:(66)10 = (1000010)2 2. Переводимо число 109 у двійкову форму: (109)10 = (1101101)2 3. Здійснюємо операцію: (1000010)2 (1101101)2 ^---------- (0101111)2 4. Результат: 66 ^ 109 = 47 Операція ^ може бути використана для кодування і розкодування. >> і << - Операції зсуву вправо і вліво Зсуває всі біти на певну кількість розрядів вправо або вліво. При цьому лівий або правий кінець заповнюється нулями. Приклад. (66)10 >> 2 = (1000010)2 >> 2 = (0010000)2 = (16)10 (66)10 << 2 = (1000010)2 << 2 = (100001000)2 = (264)10 Розглянемо послідовний зсув вправо Таблиця 1 – Результати виконання операцій зсуву
Зсув на 1 біт вліво множить число на 2, в зсув вправо – ділить на 2. Операціі >> і << дозволяють швидкo множити і ділити цілі числа. ~ - Операція доповнення (НІ) Здійснює інвертування бітів, тобто перетворює 0 в 1, а 1 в 0. Часто використовуються в операціях кодування. Приклад. А =(66)10 ~A = ~(1000010)2 = (0111101)2 = (61)10 ~~A = ~(0111101)2 = (100010)2 = (66)10 = A Варіанти індивідуальних завдань 1. Обчислити R=А&B і перевірити переведенням в десяткову СЧ. 2. Обчислити R=A|B і перевірити переведенням в десяткову СЧ. 3. Обчислити R=A^B, Q=R^B і перевірити переведенням в десяткову СЧ. 4. Обчислити R=~A, Q= ~R. 5. Обчислити A>>c, B>>d і перевірити діленням. 6. Обчислити A<<d, B<<c і перевірити множенням. 7. * Розробити програму для виконання будь-якої порозрядної операції. 8. ** Розробити программу, яка виводить на екран таблицю 1 для довільного додатного числа.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.) |