• 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);
            }
        }
    }

    结果

  • 相关阅读:
    bzoj1379 [Baltic2001]Postman
    bzoj1116 [POI2008]CLO
    bzoj1734 [Usaco2005 feb]Aggressive cows 愤怒的牛
    tyvj1086 Elevator
    2014.7.8模拟赛【聪明的打字员】
    2014.7.8模拟赛【笨笨当粉刷匠】|bzoj1296 [SCOI]粉刷匠
    2014.7.8模拟赛【笨笨的电话网络】
    2014.7.8模拟赛【词编码】
    bzoj1854 [Scoi2010]游戏
    2014.7.7 模拟赛【小K的农场】
  • 原文地址:https://www.cnblogs.com/tynam/p/9601886.html
Copyright © 2020-2023  润新知