Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
розділ_1_28_08_15.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

6.3. Арифметичні і побітові оператори мови Java

До арифметичним операторам мови Java, які визначені для всіх числових типів, відносяться: + (додавання і унарний плюс), + = (додавання з привласненням), - (віднімання і унарний мінус), -= (віднімання з привласненням), * (множення ), *= (множення з привласненням), / (ділення), / = (поділ з привласненням),% (залишок від ділення або ділення по модулю),% = (залишок від ділення з привласненням), + + (інкремент) і - (декремент).

Будь-який оператор з привласненням з точки зору одержуваного результату еквівалентний виконання відповідної операції з подальшим привласненням, але працює зазвичай швидше: @ = B еквівалентно а = @ B (тут символ @ означає будь-яку з бінарних арифметичних операцій).

Результат виконання операцій ділення і ділення за модулем (знаходження залишку) для цілочисельних операндів є цілим числом. Так, наприклад, 5/3 дорівнює 1. Нарешті, операції інкремента і декремента відповідно збільшують і зменшують свій операнд на одиницю. Вони бувають префіксним і тоді зміна їх операнда відбувається до того, як виконуються інші дії у виразі, і постфіксні, коли зміна відбувається після обчислення виразу:

int i = 2, j = 3; // i = 2, j = 3

int k = i + j++; // k = 5, j = 4

int m = --i; // i = 1, m = 1

     З величинами цілих типів можна виконувати додаткові дії. До побітових (або порозрядним) операторів мови Java належать такі: ~ (доповнення), & (побітове І), і = (побітове І з привласненням), | (побітове Або), | (побітове Або з привласненням), ^ (виключає Або ), ^ = (виключає Або з привласненням), <<(зсув вліво), <<= (зрушення вліво з привласненням),>> (зсув вправо),>> = (зсув вправо з привласненням ),>>> (зсув вправо з розмноженням нуля) і>>> = (зсув вправо з привласненням з розмноженням нуля).

Результати операцій побітового доповнення, Або, що виключає Або і І виходять шляхом виконання над кожним з бітів операнда (операндів) дій відповідно до таблиці 6. Таблиця 6: Бітові операції

a

b

~a

a|b

a^b

a&b

0

0

1

0

0

0

1

0

0

1

1

0

0

1

1

1

1

0

1

1

0

1

0

1

Наприклад, 4 ~ 5 дорівнює 1 (бо виконавчі подання цих чисел є відповідно 100 і 101). В операторів зсуву другий аргумент показує кількість розрядів, на яке треба здійснити зрушення в двійковому представленні першого операнда вл.іво (для <<) або вправо (для>> і >>>).

int i = 3, j = 100; // i = 3, j = 100

int k = i << 4; // k = 48

int m = j >> 2; // m = 25

Легко зрозуміти, що зрушення вліво на розрядів еквівалентний множенню на , а зрушення вправо - поділу на те ж число.

Задачи для самостійного рішення

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]