Latest web development tutorials

C #을 연산자

운영자는 특정 수학이나 논리 연산을 수행하도록 컴파일러에 알려주는 상징이다. 다음과 같이 C #을, 내장 사업자의 재산을 보유하고 있습니다 :

  • 산술 연산자
  • 관계 연산자
  • 논리 연산자
  • 비트 연산자
  • 할당 연산자
  • 기타 연산자

이 튜토리얼은 산술 연산자, 관계 연산자, 논리 연산자, 비트 연산자, 대입 연산자와 다른 연산자의 각을 설명합니다.

산술 연산자

다음 표는 C #을 지원 모든 산술 연산자를 보여줍니다.10의 값이 변수 추정되면, 변수 B는,20 :

运算符描述实例
+把两个操作数相加 A + B 将得到 30
-从第一个操作数中减去第二个操作数 A - B 将得到 -10
*把两个操作数相乘 A * B 将得到 200
/分子除以分母 B / A 将得到 2
%取模运算符,整除后的余数 B % A 将得到 0
++自增运算符,整数值增加 1 A++ 将得到 11
--自减运算符,整数值减少 1 A-- 将得到 9

C # 사용 가능한 모든 산술 연산자를 알아 보려면 다음 예를 고려하십시오

시스템을 이용하여;

네임 스페이스 OperatorsAppl
{
    클래스 프로그램
    {
        정적 무효 메인 (문자열 []에 인수)
        {
            INT의 A = 21;
            INT B = 10;
            INT의 C;

            C = A + B;
            Console.WriteLine는 ( "1 라인 - C는 {0}", c);
            C = A - B;
            Console.WriteLine는 ( "2 선 - C는 {0}", c);
            C는 A * B에 ​​=;
            Console.WriteLine는 ( "3 선 - C는 {0}", c);
            C = A / B;
            Console.WriteLine는 ( "4 선 - C는 {0}", c);
            C는 B에 % =;
            Console.WriteLine는 ( "선 (5) - C는 {0}", c);

            // ++ 제 증분 동작 할당 ++ C = a로 수행;
            Console.WriteLine는 ( "6 선 - C는 {0}", c);

            22 // 이때 값
            = --a C 할당하여 // --a 먼저 자기 감산;
            Console.WriteLine는 ( "7 선 - C는 {0}", c);
            Console.ReadLine ();
        }
    }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

1 라인 - (C)의 값은 31
이 선 - (C)의 값은 11
3 라인 - C (210)의 값입니다
4 라인 - (C)의 값이 2이고
라인 (5) - (C)의 값이 1 인
6 선 - (C)의 값은 22
7 선 - (C)의 값은 21
  • C = A ++ : 자동 증가 연산자에 다에 처음 할당 한 다음.
  • ++ C = A : 제 자체 증가 연산자 한 후 C에 할당.
  • C = 할까 .. C :에, 다음 자체 빼기의 첫 임무.
  • C = --a : 다음 C에 할당 먼저 자기 뺄셈,.
using System;

namespace OperatorsAppl
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 1;
            int b;

            // a++ 先赋值再进行自增运算
            b = a++;
            Console.WriteLine("a = {0}", a);
            Console.WriteLine("b = {0}", b);
            Console.ReadLine();

            // ++a 先进行自增运算再赋值
            a = 1; // 重新初始化 a
            b = ++a;
            Console.WriteLine("a = {0}", a);
            Console.WriteLine("b = {0}", b);
            Console.ReadLine();

            // a-- 先赋值再进行自减运算
            a = 1;  // 重新初始化 a
            b= a--;
            Console.WriteLine("a = {0}", a);
            Console.WriteLine("b = {0}", b);
            Console.ReadLine();

            // --a 先进行自减运算再赋值
            a = 1;  // 重新初始化 a
            b= --a;
            Console.WriteLine("a = {0}", a);
            Console.WriteLine("b = {0}", b);
            Console.ReadLine();
        }
    }
}

»인스턴스를 실행

위의 프로그램은 출력은 다음과 같습니다

a = 2
b = 1
a = 2
b = 2
a = 0
b = 1
a = 0
b = 0

관계 연산자

다음 표는 C #을 지원 모든 관계 연산자를 보여줍니다.10의 값이 변수 추정되면, 변수 B는,20 :

运算符描述实例
==检查两个操作数的值是否相等,如果相等则条件为真。 (A == B) 不为真。
!=检查两个操作数的值是否相等,如果不相等则条件为真。 (A != B) 为真。
>检查左操作数的值是否大于右操作数的值,如果是则条件为真。 (A > B) 不为真。
<检查左操作数的值是否小于右操作数的值,如果是则条件为真。 (A < B) 为真。
>=检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 (A >= B) 不为真。
<=检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 (A <= B) 为真。

C #을 사용 가능한 모든 관계 연산자를 알아 보려면 다음 예를 고려하십시오

시스템을 이용하여;

클래스 프로그램
{
  정적 무효 메인 (문자열 []에 인수)
  {
      INT의 A = 21;
      INT B = 10;
      
      경우 (a ==의 b)
      {
          Console.WriteLine ( "라인 1 - a는 b와 동일");
      }
      그렇지 않으면
      {
          Console.WriteLine ( "1 호선 - A와 B 같지 않음");
      }
      경우의 (a <b)는
      {
          Console.WriteLine ( "2 호선 - 미만 B");
      }
      그렇지 않으면
      {
          Console.WriteLine ( "라인 - 2 이하 나보다");
      }
      경우의 (a> b)는
      {
          Console.WriteLine ( "선 3 - a가 b보다 크다");
      }
      그렇지 않으면
      {
          Console.WriteLine ( "3 호선 - 나보다 크지");
      }
      / *는 A의 값 및 B * 변경 /
      A = 5;
      B = 20;
      경우 (A <= B)
      {
         Console.WriteLine ( "4 호선 - 미만 또는 B 같음");
      }
      경우의 (b> = A)
      {
         Console.WriteLine는 ( "선 (5) - (B)이보다 크거나 같을 때");
      }
  }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

1 호선 - A와 B 동일하지
2 호선 - 나보다 작지
라인 3 - a가 b보다 크다
라인 4 - a는 b보다 작거나 동일
라인 (5) - (B)는 이상일

논리 연산자

다음 표는 C #을 지원 모든 논리 연산자를 보여줍니다. 사실 변수부울 값을 가정, 변수 B는,부울 값 false입니다 :

运算符描述实例
&&称为逻辑与运算符。如果两个操作数都非零,则条件为真。 (A && B) 为假。
||称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 (A || B) 为真。
!称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 !(A && B) 为真。

C #을 사용 가능한 모든 논리 연산자를 알아 보려면 다음 예를 고려하십시오

시스템을 이용하여;

네임 스페이스 OperatorsAppl
{
    클래스 프로그램
    {
        정적 무효 메인 (문자열 []에 인수)
        {
            부울 A = 진정한;
            부울 B = 진정한;
           
            경우 (a &&의 b)
            {
               Console.WriteLine ( "선 (1) - 조건은 사실이다");
            }
            경우 (a ||의 b)
            {
                Console.WriteLine ( "라인 2 - 조건은 사실이다");
            }
            / *는 A의 값 및 B * 변경 /
            A = 거짓;
            B = 진정한;
            경우 (a &&의 b)
            {
                Console.WriteLine ( "라인 3 - 조건은 사실이다");
            }
            그렇지 않으면
            {
                Console.WriteLine ( "라인 3 - 조건은 사실이 아니다");
            }
            만약 (! (a &&의 b))
            {
                Console.WriteLine ( "선 (4) - 조건은 사실이다");
            }
            Console.ReadLine ();
        }
    }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

1 호선 - 조건이 true 2 호선을입니다 - 조건이 true 라인 3 - 조건이 true - 조건이 true 4 호선 아니다 

비트 연산자

비트 비트에 작용하는 연산자 및 비트 연산에 의해 비트. &, | 다음과 같이 그리고 ^ 진리표는 다음과 같습니다

pqp & qp | qp ^ q
00000
01011
11110
10011

가정의 경우 A = 60, 및 B = 13, 다음과 같이 지금, 바이너리 형태이다 :

A = 0011 1100

B = 0000 1101

-----------------

A & B = 0000 1100

A | B = 0011 1101

0001 ^ B = 0011

~ A = 1100 0011

다음 표는 C #을 지원 비트 연산자를 보여줍니다. 변수A는 60, 그 변수 B(13)의 값으로 가정한다 :

运算符描述实例
&如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。 (A & B) 将得到 12,即为 0000 1100
|如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。 (A | B) 将得到 61,即为 0011 1101
^如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。 (A ^ B) 将得到 49,即为 0011 0001
~二进制补码运算符是一元运算符,具有"翻转"位效果。(~A ) 将得到 -61,即为 1100 0011,2 的补码形式,带符号的二进制数。
<<二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 A << 2 将得到 240,即为 1111 0000
>>二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 A >> 2 将得到 15,即为 0000 1111

, C #을 배우고 사용할 수있는 모든 비트 연산자를 다음 예를 고려하십시오

시스템을 이용하여;
네임 스페이스 OperatorsAppl
{
    클래스 프로그램
    {
        정적 무효 메인 (문자열 []에 인수)
        {
            INT A = 60 / * 1100 = 0011 60 * /  
            INT B = 13 / * 1101 = 0000 13 * /
            INT의 C = O;           

             C = A, B, / * 12 = 0000 1100 * / 
             Console.WriteLine는 ( "1 라인 - C는 {0}", c);

             C A = | B를 / * 1101 = 0011 61 * /
             Console.WriteLine는 ( "2 선 - C는 {0}", c);

             C = A ^ B / * 0001 = 0011 49 * /
             Console.WriteLine는 ( "3 선 - C는 {0}", c);

             C = ~ / * - 0011 = 1100 61 * /
             Console.WriteLine는 ( "4 선 - C는 {0}", c);

             C는 = A << 2 / * 240 = 1111 0000 * /
             Console.WriteLine는 ( "선 (5) - C는 {0}", c);

             C = A >> 2 / * 15 = 0000 1111 * /
             Console.WriteLine는 ( "6 선 - C는 {0}", c);
            Console.ReadLine ();
        }
    }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

1 라인 - (C)의 값은 12
이 선 - (C)의 값이 61 인
3 선 - (C)의 값이 49 인
4 라인 - 값 C는 -61
라인 (5) - (C)의 값이 240 인
6 선 - (C)의 값은 15

할당 연산자

다음 표는 C #은 할당 연산자를 지원 나열

运算符描述实例
=简单的赋值运算符,把右边操作数的值赋给左边操作数 C = A + B 将把 A + B 的值赋给 C
+=加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 C += A 相当于 C = C + A
-=减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 C -= A 相当于 C = C - A
*=乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 C *= A 相当于 C = C * A
/=除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 C /= A 相当于 C = C / A
%=求模且赋值运算符,求两个操作数的模赋值给左边操作数 C %= A 相当于 C = C % A
<<=左移且赋值运算符 C <<= 2 等同于 C = C << 2
>>=右移且赋值运算符 C >>= 2 等同于 C = C >> 2
&=按位与且赋值运算符 C &= 2 等同于 C = C & 2
^=按位异或且赋值运算符 C ^= 2 等同于 C = C ^ 2
|=按位或且赋值运算符 C |= 2 等同于 C = C | 2

사용 가능한 모든 대입 연산자에 C 번호를 알아 보려면 다음 예를 고려하십시오

시스템을 이용하여;

네임 스페이스 OperatorsAppl
{
    클래스 프로그램
    {
        정적 무효 메인 (문자열 []에 인수)
        {
            INT의 A = 21;
            INT의 C;

            C = A;
            Console.WriteLine ( "1 호선 - = C 값 = {0}", c);

            C + = A;
            Console.WriteLine ( "2 호선 - + = C 값 = {0}", c);

            C - A =;
            Console.WriteLine ( "3 호선 - - = C 값 = {0}", c);

            C * = A;
            Console.WriteLine ( "4 호선 - * = C 값 = {0}", c);

            C / = A;
            Console.WriteLine ( "5 호선 - / = C 값 = {0}", c);

            C = 200;
            ㄴ % = A;
            Console.WriteLine ( "라인 - 6 % = C 값 = {0}", c);

            C << = 2;
            Console.WriteLine ( "라인 7 - << = C 값 = {0}", c);

            C >> 2 =;
            Console.WriteLine는 ( "라인 8 - >> C 값을 = = {0}", c);

            C & = 2;
            Console.WriteLine ( "9 호선 - & = C 값 = {0}", c);

            C ^ = 2;
            Console.WriteLine ( "10 호선 - ^ = C 값 = {0}", c);

            C | = 2;
            Console.WriteLine ( "라인 11 - | = C 값 = {0}", c);
            Console.ReadLine ();
        }
    }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

1 호선 - = C = 값 (21)
2 호선 - + = C의 값 = (42)
3 선 - - C의 값을 = = 21
4 라인 - C의 * = 값 = 441
5 호선 - / = C = 값 (21)
6 선 - (%) = (c)의 값 = 11
7 선 - << = C의 값 = (44)
8 라인 - 값 >> = C = 11
9 선 - C의 & = 값 = 2
라인 10 - ^ = C = 0 값
라인 11 - | = C 2 = 값

기타 연산자

? 다음 표를 sizeof의typeof포함하여 C # 지원하는 일부 다른 중요한 연산자를보여줍니다.

운영자 기술 예 를 sizeof () 데이터 타입의 크기를 돌려줍니다. 를 sizeof (int)를, 4를 반환합니다. 대한 typeof () 클래스 형을 돌려줍니다. 대한 typeof (위해 StreamReader); 및 주소 변수를 돌려줍니다. & A는, 당신은 변수의 실제 주소를 얻을 것이다. * 포인터 변수입니다. *는, 변수를 가리 킵니다. ? : 조건식 ? 조건이 true, 또는 X 경우 Y, 그렇지 않으면 이다 특정 유형의 객체 여부를 결정합니다. (포드 자동차입니다) 경우 여부 개체 포드 자동차 클래스를 확인 //. 으로 변환이 예외를 throw하지 않습니다 실패하는 경우에도, 캐스트. 개체 OBJ = 새로운 StringReader를 ( "안녕하세요");
StringReader를 R = OBJ StringReader를 같은;

시스템을 이용하여;

네임 스페이스 OperatorsAppl
{
    
   클래스 프로그램
   {
      정적 무효 메인 (문자열 []에 인수)
      {
         
         / *를 sizeof 연산자 인스턴스 * /
         Console.WriteLine은 (는 sizeof (int)를 "INT의 크기는 {0}입니다");
         Console.WriteLine은 (는 sizeof) (짧은 "짧은 크기는 {0}입니다");
         Console.WriteLine ()는 (더블, sizeof 연산자의 "{0}의 크기를 두 배로");
         
         / * 삼항 연산자 * / 인스턴스를 나누기
         A, B를 int로;
         A = 10;
         B = (A == 1) 20 : 30;?
         Console.WriteLine ( "B 값은 {0}", B)

         B = (A == 10) 20 : 30;?
         Console.WriteLine ( "B 값은 {0}", B)
         Console.ReadLine ();
      }
   }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

지능 크기는 4
짧은 크기는 2
더블은 8입니다
B 값은 30이다
B 값은 20이다

C #의 연산자 우선 순위에

연산자 우선 순위는 식의 결합 된 용어를 결정한다. 이 방법 식 계산에 영향을 미칩니다. 일부 운영자들은 운영자 높은 우선 순위보다 덧셈과 뺄셈, 곱셈과 나눗셈 연산자 다른 사업자보다 높은 우선 순위를 갖는다.

예를 들어, X = * 연산자는 +보다 더 높은 우선 순위를 가지고 있기 때문에 X는 그래서 먼저 곱하기 3 * 2를 계산하는 대신 20의 13에 할당, 7 + 3 * 2, 다음 7을 추가합니다.

다음 표는 위의 우선 순위가 높은 사업자가 테이블에 표시되는 다음과 같은 우선 순위가 낮은 연산자, 테이블에 표시 갖는 각각의 연산자에 대한 연산자 우선 순위의 순서로 나열됩니다. 식에서, 우선 순위가 높은 우선 오퍼레이터가 계산된다.

类别  运算符 结合性 
后缀 () [] -> . ++ - -   从左到右 
一元  + - ! ~ ++ - - (type)* & sizeof  从右到左 
乘除  * / % 从左到右 
加减 + -  从左到右 
移位  << >>  从左到右 
关系 < <= > >=  从左到右 
相等  == !=  从左到右 
位与 AND  从左到右 
位异或 XOR  从左到右 
位或 OR  从左到右 
逻辑与 AND &&  从左到右 
逻辑或 OR  ||  从左到右 
条件 ?:  从右到左 
赋值  = += -= *= /= %=>>= <<= &= ^= |= 从右到左 
逗号  从左到右 

시스템을 이용하여;

네임 스페이스 OperatorsAppl
{
    
   클래스 프로그램
   {
      정적 무효 메인 (문자열 []에 인수)
      {
         INT의 A = 20;
         INT B = 10;
         INT의 C = 15;
         INT의 D = 5;
         INT 전자;
         E = (A + B) * C / D; // (30 * 15) / (5)
         Console.WriteLine ( "값 (A + B) * C / D는 {0}입니다", 전자);

         전자 = ((A + B) * C) / D; // (30 * 15) / (5)
         Console.WriteLine ( "값 ((A + B) * C) / d는 {0}입니다", 전자);

         E = (a + b) * (C / D) // (30) * (15/5)
         Console.WriteLine ( "(A + B) * (c / d를) 값은 {0}입니다", 전자);

         E = A + (ㄴ *의 C) / D; // 20 + (5분의 150)
         Console.WriteLine는 (전자의 "+ (ㄴ * (c)의 값) / d를 {0}입니다");
         Console.ReadLine ();
      }
   }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

값 (A + 나) * C / D가 90
값 ((a는 + B) * C) / d를 90
(A는 B +) * (C / D)의 값이 90
A + (b *의 온도)의 값 / D가 50