C#-运算符(四)


算术运算符
  +:两个操作数相加,例:2+3得5
  -:第一个操作数减去第二个操作数 例:5-3得2
  *:两个操作数相乘,例:2*3得6
  /:分子除以分母,例:5/2得2
  %:取模运算符,整除后的余数,例:5%2得1
  ++:自增运算符,整数值增加1,例:i++
  --:自减运算符,整数值减少1,例:i--

关系运算符
  ==:检查两个操作数的值是否相等,如果相等则为true
  !=:检查两个操作数的值是否相等,如果不相等则为true
  >:检查左操作数的值是否大于右操作数的值,如果是则为true
  <:检查左操作数的值是否小于右操作数的值,如果是则为ture
  >=:检查左操作数的值是否大于或等于右操作数的值,如果是则为true
  <=:检查左操作数的值是否小于或等于右操作数的值,如果是则为true

逻辑运算符
  &&:与运算符。如果两个操作数都非零,则为true
  ||:或运算符。如果两个操作数中有任意一个非零,则为ture
  !:非运算符。如果条件为true则非运算符将使其为false

赋值运算符
  =:赋值运算符,将右边操作数的值赋给左边操作数
  +=:加且赋值运算符,将右边操作数加上左边操作数的结果赋值给左边操作数
  -=:减且赋值运算符,将左边操作数减去右边操作数的结果赋值给左边操作数
  *=:乘且赋值运算符,将右边操作数乘以左边操作数的结果赋值给左边操作数
  /=:除且赋值运算符,将左边操作数除以右边操作数的结果赋值给左边操作数
  %=:求模且赋值运算符,求两个操作数的模赋值给左边操作数
  <<=:左移且赋值运算符
  &=:按位与且赋值运算符
  ^=:按位异或且赋值运算符
  |=:按位或且赋值运算符

位运算符
  &:如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中
  |:如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中
  ^:如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中
  ~:按位取反运算符是一元运算符,具有"翻转"位效果,即0变成1,1变成0,包括符号位
  <<:二进制左移运算符。左操作数的值向左移动右操作数指定的位数
  >>:二进制右移运算符。左操作数的值向右移动右操作数指定的位数

位运算符"&"是双目运算符
其功能是参与运算的两数各对应的二进位相与
只有对应的两个二进位均为1时,结果位才为1 ,否则为0
参与运算的数以补码方式出现
例:9&5
    9 的二进制补码为 0000 1001
    5 的二进制补码为 0000 0101
    结果             0000 0001
    则:9 & 5 = 1


或运算符“|”是双目运算符
其功能是参与运算的两数各对应的二进位相或
只要对应的二个二进位有一个为1时,结果位就为1
参与运算的两个数均以补码出现
例:9|5
                    0000 1001
                    |
                    0000 0101
            结果    0000 1101
            则: 9 | 5 = 13

 

其他运算符
  ?::条件运算符 , 根据布尔型表达式的值返回两个值中的一个
  格式:condition ? first_expression : second_expression;
  如果条件为 true,则计算第一表达式并以它的计算结果为准;如果为 false,则计算第二表达式并以它的计算结果为准。只计算两个表达式中的一个
  ??:如果 ?? 运算符的左操作数非空,该运算符将返回左操作数,否则返回右操作数


运算符优先级
  算术运算符>>关系运算符>>逻辑运算符>>赋值运算符

示例

using System;

namespace demo
{
    class program
    {
        static void Main(String[] args)
        {
            int a = 5;
            int b;

            Console.WriteLine(5 + 5);
            Console.WriteLine(-a);
            Console.WriteLine(a - 1);
            Console.WriteLine(5 * 2);
            Console.WriteLine(5.0 % 2.2);
            Console.WriteLine(a--);
            Console.WriteLine(--a);

            Console.WriteLine(true | false);
            Console.WriteLine(true ^ false);

            Console.WriteLine(1.1 < 1.1);

            Console.WriteLine("b 的值是 {0}", b = (a == 1) ? 20 : 30);
        }
    }
}

结果

posted @ 2018-09-06 23:14  Tynam.Yang  阅读(717)  评论(0编辑  收藏  举报