Направо към съдържанието

Оператор (програмиране)

от Уикипедия, свободната енциклопедия
Вижте пояснителната страница за други значения на Оператор.

Чрез операторите в програмните езици се осъществява обработката на данни. Всеки оператор има строго определена функционалност, в зависимост от конкретния програмен език, към който принадлежи. Операторите се обозначават със символи (напр. !, %, +, || и др.) и се характеризират с: позиция спрямо аргументите си (инфиксен или постфиксен), приоритет и асоциативност.

Операторите са обособени в отделни категории: според естеството на извършваните от тях операции и според броя аргументи, които приемат.

Според естеството на извършваните операции

[редактиране | редактиране на кода]
  • аритметични – извършват математически операции (като събиране, изваждане, умножение, деление)
  • логически – извършват булеви операции върху данните и връщат булев резултат
  • побитови – работят на принципа на логическите оператори, но върху двоичното представяне на числата.
  • за сравнение – извършват операции за сравнение на две или повече операнди
  • за присвояване – присвояват стойност на дадена променлива

Според броя на аргументите

[редактиране | редактиране на кода]
  • едноаргументни (на английски: unary) – приема един аргумент
  • двуаргументни (на английски: binary) – приема два аргумента
  • триаргументни (на английски: ternary) – приема три аргумента

Предефиниране на оператори

[редактиране | редактиране на кода]

Предефинирането на оператори в обектно-ориентираното програмиране позволява дефиниране на различна функционалност на вече съществуващи оператори, в зависимост от типовете, върху които се използват. Те могат да бъдат предефинирани както от езика (напр. в C# и Java аритметичният оператор + може да означава събиране на числа или конкатениране на низове), така и от програмиста (напр. в C++).

Операторите в различните програмни езици

[редактиране | редактиране на кода]
C#JavaC++JavaScriptPHP
Аритметични
Отрицание––––-
Събиране+++++
Изваждане––––-
Умножение*****
Деление/////
Деление по модул%%%%%
Инкрементиране++++++++++
Декрементиране----------
За присвояване
Присвояване=====
Прибавяне и присвояване+=+=+=+=+=
Изваждане и присвояване-=-=-=-=-=
Умножение и присвояване*=*=*=*=*=
Деление и присвояване/=/=/=/=/=
Деление по модул и присвояване%=%=%=%=%=
Побитово „И“ и присвояване&=&=&=&=&=
Побитово „ИЛИ“ и присвояване|=|=|=|=|=
Изключващо „ИЛИ“ и присвояване^=^=^=^=^=
Отместване вляво и присвояване<<=<<=<<=<<=<<=
Отместване вдясно и присвояване>>=>>=>>=>>>=>>=
Отместване вдясно, запълване с нули и присвояване>>>=>>>=
За сравняване
Равно==========
Идентично======
Различно!=!=!=!=!=, <>
Неидентично!==!==
По-малко<<<<<
По-голямо>>>>>
По-малко или равно<=<=<=<=<=
По-голямо или равно>=>=>=>=>=
Логически
Логическо „И“&&&&&&&&and, &&
Логическо „ИЛИ“||||||||or, ||
Изключващо „ИЛИ“^^xor
Логическо отрицание!!!!!
Побитови
Побитово „И“&&&&&
Побитово „ИЛИ“|||||
Изключващо „ИЛИ“^^^^^
Побитово отрицание~~~~~
Побитово отместване вляво<<<<<<<<<<
Побитово отместване вдясно>>>>>>>>>>
Побитово отместване вдясно и запълване с нули>>>>>>
Условни?:,???:?:?:?:,??
За работа с типове(type), as, is, typeof, sizeof(type), instanceof(type), sizeof(), typeid()typeofinstanceof
Оператори за низове
Съединяване+++.
Съединяване и присвояване+=+=+=.=
Оператори за масиви+, ==, ===, !=, <>, !==

Аритметични оператори

[редактиране | редактиране на кода]
        int a = 2;
        int b = 3;
        int result;

        result = a + b;  // в променливата result ще се запази сумата на a и b
        result = a – b;  // в променливата result ще се запази разликата на a и b
        result = a * b;  // в променливата result ще се запази произведението на a и b
        result = a / b;  // в променливата result ще се запази частното на a и b
        result = a % b;  // в променливата result ще се запази остатъкът от делението на a и b
        result = a++; //в променливата result ще се запази стойността на променливата a, увеличена с 1
        result = a--;  // в променливата result ще се запази стойността на променливата a, намалена с 1

Логически оператори

[редактиране | редактиране на кода]
        bool a = true;
        bool b = false;

        Console.WriteLine(a && b);  // На конзолата ще се изпише False
        Console.WriteLine(a || b);  // На конзолата ще се изпише True
        Console.WriteLine(!b);  // На конзолата ще се изпише True

Побитови оператори

[редактиране | редактиране на кода]
        int a = 3;                // 0000 0011 = 3
        int b = 5;                // 0000 0101 = 5

        Console.WriteLine(a | b); // 0000 0111 = 7
        Console.WriteLine(a & b); // 0000 0001 = 1
        Console.WriteLine(a ^ b); // 0000 0110 = 6
        Console.WriteLine(~a & b); // 0000 0100 = 4
        Console.WriteLine(a << 1); // 0000 0110 = 6
        Console.WriteLine(a << 2); // 0000 1100 = 12
        Console.WriteLine(a >> 1); // 0000 0001 = 1

Оператори за сравнение

[редактиране | редактиране на кода]
        int x = 10, y = 5;
        Console.WriteLine(“x > y : “ + (x > y)); // true
        Console.WriteLine(“x < y : “ + (x < y)); // false
        Console.WriteLine(“x >= y : “ + (x >= y)); // true
        Console.WriteLine(“x <= y : “ + (x <= y)); // false
        Console.WriteLine(“x == y : “ + (x == y)); // false
        Console.WriteLine(“x != y : “ + (x != y)); // true
        int a = 6;
        int b = 4;
        Console.WriteLine(a > b ? “a>b” : “b<=a”); // a>b

Аритметични оператори

[редактиране | редактиране на кода]
       int squarePerimeter = 17;
       double squareSide = squarePerimeter / 4.0;
       double squareArea = squareSide * squareSide;
       System.out.println(squareSide); // 4.25
       System.out.println(squareArea); // 18.0625

       int a = 5;
       int b = 4;
       System.out.println(a + b);      // 9
       System.out.println(a + b++);    // 9
       System.out.println(a + b);      // 10
       System.out.println(a + (++b));  // 11
       System.out.println(a + b);      // 11
       System.out.println(14 / a);     // 2
       System.out.println(14 % a);     // 4

Логически оператори

[редактиране | редактиране на кода]
        boolean a = true;
        boolean b = false;
        System.out.println(a && b);         // false
        System.out.println(a || b);         // true
        System.out.println(!b);             // true
        System.out.println(b || true);      // true
        System.out.println((5>7) ^ (a==b)); // false

Побитови оператори

[редактиране | редактиране на кода]
      short a = 3;                // 0000 0011 = 3
      short b = 5;                // 0000 0101 = 5

      System.out.println(a | b); // 0000 0111 = 7
      System.out.println(a & b); // 0000 0001 = 1
      System.out.println(a ^ b); // 0000 0110 = 6
      System.out.println(~a & b); // 0000 0100 = 4
      System.out.println(a << 1); // 0000 0110 = 6
      System.out.println(a << 2); // 0000 1100 = 12
      System.out.println(a >> 1); // 0000 0001 = 1

Оператори за сравнение

[редактиране | редактиране на кода]
int x = 10, y = 5;
       System.out.println(“x > y : “ + (x > y)); // true
       System.out.println(“x < y : “ + (x < y)); // false
       System.out.println(“x >= y : “ + (x >= y)); // true
       System.out.println(“x <= y : “ + (x <= y)); // false
       System.out.println(“x == y : “ + (x == y)); // false
       System.out.println(“x != y : “ + (x != y)); // true
       int a = 6;
       int b = 4;
       System.out.println(a > b ? “a>b” : “b<=a”); // a>b