Унарна операция
Унарна операция в математиката се нарича операция с единствен операнд, или с други думи, функция над един аргумент.
За означение на унарните операции се използват различни нотации:
- префиксна нотация: например -n или ¬p
- постфиксна нотация: например n!, n2
- функционална нотация: например sin x или sin(x), mod x или |x| , ln x, log x
- други: например √, „втори корен“.
Тъй като унарните операции имат само един операнд, те се оценяват приоритетно пред останалите операции, които ги съдържат. Например при следния запис:
3 − −2
първият минус представлява бинарната операция „изваждане“, а вторият минус — унарната операция „отрицание“. Следователно, първо се оценява унарната операция. По-ясно записано, в скоби, същото изглежда така:
3 − (−2) = 3 + 2 = 5
При радикалите няма нужда от скоби, понеже хоризонталната черта се простира над целия израз и играе роля на своеобразни скоби.
Унарни операции в програмирането [редактиране]
Във фамилията от програмни езици, базирани на C, следните оператори са унарни:
- Инкрементиране (нарастване с единица):
++x,x++ - Декрементиране (намаляване с единица):
−−x,x−− - Адрес на променливата в паметта:
&x - Стойност, съдържаща се на адреса, който указателят сочи:
*x - Положително число:
+x - Отрицателно число:
−x - Побитово отрицание (инверсия, допълване до 1):
~x - Логическо отрицание:
!x - Размер на операнда в байтове:
sizeof x,sizeof(type-name) - Преобразуване на типа данни:
(type-name) cast-expression
В повечето програмни езици, операторите за инкрементиране и декрементиране могат да бъдат както с префиксна, така и с постфиксна форма, което има значение при работа с променливи. При префиксен запис, стойността на променливата първо се увеличава (или намалява) с единица и после се използва като аргумент на функцията, а при постфиксен запис, извиканата функция използва заварената стойност на променливата и след това тази стойност се увеличава (намалява).
Следват два примера, при които оценяването на целочислените аргументи се извършва отляво надясно.
- Пример 1
int i = 0;
printf (" %d \n %d ", i++, i++);
Изход:
0 1
- Пример 2
int i = 0;
printf (" %d \n %d ", ++i, ++i);
Изход:
1 2
Оператори за инкрементиране и декрементиране обикновено се използват във For-циклите.
| Тази страница частично или изцяло представлява превод на страницата „Unary operation“ в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс - Признание - Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година — от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите. |