Арифметические операции (операнды - числа или ссылки)
Аддитивные
Операция | Результат | Ограничения |
x+y | сумма x и y | если один из операндов ссылка, то другой должен быть целой величиной1 |
x-y | разность x и y | если один из операндов ссылка, то другой - целая величина или ссылка с тем же базовым типом |
1Точнее, величиной типа int, char, short, long или unsigned.
Мультипликативные
Операция | Результат | Ограничения |
x*y | произведение x на y | x и y не должны быть ссылками |
x/y | частное от деления x на y | x и y не должны быть ссылками |
x%y | остаток от деления x на y | x и y не должны быть типов double, float или ссылка |
-x | изменение знака x | x не должно быть ссылкой |
Увеличения и уменьшения
Операция | Результат | Ограничения |
x++(x--) | x после использования x увеличивается (уменьшается) |
x относится к некоторому числовому значению или к ссылке |
++x(--x) | x+1 x увеличивается (уменьшается) перед использованием |
x относится к некоторому числовому значению или к ссылке |
Операции присваивания
Операция | Результат | Ограничения |
x=y | y приводится к типу x, x получает значение y | x, y могут быть любого типа, но не массивом |
x op=y | x op(y) приводится к типу x, x получает значение x op(y) | x, y могут быть любого типа, но не массивом |
Порязрядные операции (операнды - целые величины)
Логические
Операция | Результат | Ограничения |
x&y | порязрядное логическое И для x на y; соответствующий разряд результата равен 1, если оба разряда x и y равны 1, и 0 - иначе | |
x|y | порязрядное логическое ИЛИ; соответствующий разряд результата равен 0, если оба разряда x и y равны 0, и 1 - иначе | |
x^y | порязрядное логическое исключающее ИЛИ; соответствующий разряд результата равен 0, если разряды x и y одинаковы, и 1 - иначе | |
~x | логическое отрицание (дополнение); разряд равный 1 в x, равен 0 в результате и наоборот |
Сдвиг
Операция | Результат | Ограничения |
x | сдвиг влево на y разрядов, младшие разряды x равны 0 | y положительно и меньше разрядности машины |
x>>y | сдвиг вправо на y разрядов, старшие разряды x будут равны 0 для положительных x и равны 0 или 1 (в зависимости от транслятора) для отрицательных x | y положительно и меньше разрядности машины |