- •Функції стандартного введення-виведення
- •1.1.6. Логічні операції Арифметичні операції:
- •Операції відношення та логічні операції:
- •Операції присвоювання:
- •1.2.1. Умова завдання.
- •1.2.2. Опис методу рішення
- •1.2.3. Опис алгоритму програми
- •1.2.4. Тестування роботи програми
- •1.3.1. Умова завдання
- •1.3.2. Опис методу рішення
- •1.3.3. Опис алгоритму програми
- •1.3.4. Тестування роботи програми
- •1.4.1. Умова завдання
- •1.4.2. Опис методу рішення
- •1.4.3. Опис алгоритму програми
- •1.4.4. Тестування роботи програми
- •Висновки
- •Cписок викоростаних джерел
Операції присвоювання:
В якості операцій використовують: +, -, *, /, %, &, і, >>, <<, ^
Особливості операцій присвоювання:
крім операцій пересилки значення операцій присвоювання має ще і значення рівне результату присвоювання. Це значить, що можна записувати декілька операцій присвоювання, тобто а = в = с=3
натискання комбінованих операцій присвоювання і =і+2, тобто і + = 2 до старшого значення “+” та зробити новим значенням.
Вираз 1 операція = вираз 2; (вир.1) = (вир.1) опер. (вир.2) з тієї різниці, що вираз 1 обчислюється один раз.
В мові С операції з високими пріоритетами обчислюються першими. Самим вищим пріоритетом являється пріоритет, який дорівнює 1. Пріоритети та порядок операцій наведені в таблиці 1.2
Таблиця 1.2 - Приорітети операцій та порядок їх обчислення
Пріоритет |
Знак операції |
Типи операцій |
Порядок виконання |
2 |
() [] . -> |
Вираження |
Зліва направо |
1 |
- ~ ! * & ++ -- sizeof наведення типів |
Унарні |
Вправо наліво |
3 |
* / % |
Мультиплікаційні |
Зліва направо |
4 |
+ - |
Адитивні | |
5 |
<< >> |
Зсув | |
6 |
< > <= >= |
Відношення | |
7 |
== != |
Відношення (рівність) | |
8 |
& |
Порозрядне І | |
9 |
^ |
Порозрядно виключаюче ІЛІ | |
10 |
| |
Порозрядне ІЛІ | |
11 |
&& |
Логічне І | |
12 |
|| |
Логічне ІЛІ | |
13 |
? : |
Умовна | |
14 |
= *= /= %= += -= &= |= >>= <<= ^= |
Просте та складове присвоювання |
Справа наліво |
15 |
, |
Послідовне віднімання |
Зліва направо |
Робота з побітовими операціями
1.2.1. Умова завдання.
Скласти функцію, яка зрушує вправо біти негативних чисел на два розряди, а біти 0 і 4 позитивних чисел скидає. Елементи фіксованого масиву знакових чисел представити в десятковому і шістнадцятирічному форматі. Вивести результати дій на екран.
1.2.2. Опис методу рішення
Бітова операція в програмуванні - деякі операції над ланцюжками бітів. У програмуванні, як правило, розглядаються лише деякі види цих операцій : логічні побітові операції і бітові зрушення. Бітові операції застосовуються в мовах програмування і цифровій техніці, вивчаються в дискретній математиці.
До бітових операцій також відносять бітові зрушення. При зрушенні значення бітів копіюються в сусідні по напряму зрушення. Розрізняють декілька видів зрушень - логічного, арифметичного і циклічного, залежно від обробки крайніх бітів. Також розрізняють зрушення вліво (у напрямі від молодшого біта до старшого) і вправо (у напрямі від старшого біта до молодшого).
При логічному зрушенні значення останнього біта по напряму зрушення втрачається (копіюючись в біт перенесення), а перший набуває нульового значення.Також розрізняють зрушення вліво (у напрямі від молодшого біта до старшого) і вправо (у напрямі від старшого біта до молодшого). Логічні зрушення вліво і вправо використовуються для швидкого множення і ділення на 2, відповідно.
Мал. 1.3 - Логічне зрушення
Арифметичне зрушення аналогічне логічному, але значення слова вважається знаковим числом, представленим в додатковому коді. Так, при правому зрушенні старший біт зберігає своє значення. Ліве арифметичне зрушення ідентичне логічному.
Мал. 1.4 - Арифметичне зрушення (правий)
При циклічному зрушенні, значення останнього біта по напряму зрушення копіюється в перший біт (і копіюється в біт перенесення).
Рис.1.5 - Циклічне зрушення
Отже, можна прийти до висновку, ща наша функція використовує зрушення вправо для негативних чисел, тобто ділення на 2, а 0 і 4 біти позитивних чисел скидуються.