• asp.net运算符之逻辑运算符以及其他运算符


    逻辑(布尔型)运算符用于对boolean型的结果的表达式进行运算,运算的结果都是boolean型。其运算结果如下所示:

    运算符 运算 例子 结果
    & AND(与) false&true false
    | OR(或) false|true true
    ^ XOR(异或) false^true true
    ! NOT(非) !false true
    && AND(短路) false&&true false
    || OR(短路) false||true true


    下面对一些比较容易出现问题进行简单解释:

    1、“^“ 将计算操作数的逻辑“异或”;也就是说,当且仅当只有一个操作数为 true时,结果才为true。

    2、“&”与”&&“的区别在于,如果使用前者连接,那么无论任何情况下,“&”两边的表达式都会参与计算。如果使用后者连接,当“&&”的左边为false,则将不会计算其右边的表达式。from:http://www.111cn.net/net/net/47469.htm

    3、“|”与“||”的区别在于,“|”表示两边任何一个布尔表达式为真,该组合就会返回true值;而对于“||”,跟第二差不多,若左边是true则返回true,若左边是falsh,则看右边,若右边为true则为true否则为falsh。

    代码如下 复制代码
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    public partial class _Default : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {

    int x = 0;
    string name = "搜索吧";

    //&运算,两个中任何一个为假时则为假
    Response.Write("x != 0 & name = /"搜索吧/"的运算结果是:"+ (x != 0 & name == "搜索吧"));

    Response.Write("<br>");

    //|运算,当两个中任何一个为真时,运算结果为真,否则为加
    Response.Write("x != 0 | name = /"搜索吧/"的运算结果是:" + (x != 0 | name == "搜索吧"));

    Response.Write("<br>");

    //^运算,当且仅当有一个是True时,为真,否则为假
    Response.Write("x != 0 ^ name = /"搜索吧/"的运算结果是:" + (x != 0 ^ name == "搜索吧"));
    Response.Write("<br>");
    Response.Write("x == 0 ^ name = /"搜索吧/"的运算结果是:" + (x == 0 ^ name == "搜索吧"));
    Response.Write("<br>");

    (www.111cn.net) //!运算,若真则假,若假则真
    Response.Write("x != 0 的运算结果是:" + !(x != 0));

    Response.Write("<br>");

    //&&短路运算,若左边为假则退出,若左边为真,则看右边
    Response.Write("x != 0 && name = /"搜索吧/"的运算结果是:" + (x != 0 && name == "搜索吧"));

    Response.Write("<br>");
    //||短路运算,若左边为真,则为真退出;若左边为假,则看右边,右边为真,则为真,否则为假
    Response.Write("x != 0 || name = /"搜索吧/"的运算结果是:" + (x != 0 || name == "搜索吧"));
    }
    }


    运算符

    C# 提供大量运算符,这些运算符是指定在表达式中执行哪些操作的符号。通常允许对枚举进行整型运算,例如 ==、!=、<、>、<=、>=、binary +、binary -、^、&、|、~、++、-- 和 sizeof()。此外,很多运算符可被用户重载,由此在应用到用户定义的类型时更改这些运算符的含义。

    运算符类别 运算符
    基本 x.y
    f(x)
    a[x]
    x++
    x--
    new
    typeof
    checked
    unchecked
    ->
    一元 +
    -
    !
    ~
    ++x
    --x
    (T)x
    True
    False
    &
    sizeof
    乘法 *
    /
    %
    加法 +
    -
    变换 <<
    >>
    关系和类型检测 <
    >
    <=
    >=
    is
    as
    相等 ==
    !=
    逻辑“与” &
    逻辑 XOR ^
    逻辑“或” |
    条件 AND &&
    条件 OR ||
    条件运算 ?:
    赋值 =
    +=
    -=
    *=
    /=
    %=
    &=
    |=
    ^=
    <<=
    >>=
    ??

    运算符优先级
    前++ 前-- +(正号) -(负号)! ~
    * / %
    + -
    << >>
    < > <= >=
    == !=
    &
    ^
    |
    &&
    ||
    赋值运算
    后++ 后--
    可重载运算符
    C# 允许用户定义的类型通过使用 operator 关键字定义静态成员函数来重载运算符。但不是所有的运算符都可被重载,下表列出了不能被重载的运算符:
    运算符 可重载性
    +、-、!、~、++、--、true 和 false 可以重载这些一元运算符。
    +, -, *, /, %, &, |, ^, <<, >> 可以重载这些二进制运算符。
    ==, !=, <, >, <=, >= 比较运算符可以重载(但请参见本表后面的说明)。
    &&, || 条件逻辑运算符不能重载,但可使用能够重载的 & 和 | 进行计算。
    [] 不能重载数组索引运算符,但可定义索引器。
    () 不能重载转换运算符,但可定义新的转换运算符(请参见 explicit 和 implicit)。
    +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>= 赋值运算符不能重载,但 += 可使用 + 计算,等等。
    =、.、?:、->、new、is、sizeof 和 typeof 不能重载这些运算符。

    语法
    public static Complex operator +(Complex c1, Complex c2)

  • 相关阅读:
    【LeetCode】152. 乘积最大子数组(DP)
    【剑指Offer】49. 丑数(三指针)
    [P1979][NOIP2013] 华容道 (BFS建图+SPFA)
    [P1850][NOIP2016] 换教室 (期望+DP+Floyd)
    差分约束学习笔记
    [P1291][SHOI2002] 百事世界杯之旅 (期望)
    [P4342][IOI1998] Polygon (区间DP)
    [P3802] 小魔女帕琪 (期望)
    [P1273] 有线电视网 (树形DP+分组背包)
    树链剖分学习
  • 原文地址:https://www.cnblogs.com/alibai/p/3980092.html
Copyright © 2020-2023  润新知