C# 操作符:算术、关系、逻辑、赋值、位操作符

  1. 操作符列表

    • 算术操作符+(加法)、-(减法)、*(乘法)、/(除法)、%(取余)
    • 关系操作符==(等于)、!=(不等于)、>(大于)、>=(大于等于)、<(小于)、<=(小于等于)
    • 逻辑操作符&&(逻辑与)、||(逻辑或)、!(逻辑非)
    • 赋值操作符=(简单赋值)、+=-=*=/=%=&=|=^=<<=>>=(复合赋值)
    • 位操作符&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、<<(左移)、>>(右移)
  2. 详细说明

    算术操作符

    • 加法(+)
      • 功能:用于将两个操作数相加。操作数可以是整数、浮点数、字符(将字符对应的Unicode码值相加)、字符串(用于字符串拼接)等。
      • 示例
        • 整数相加:int a = 3; int b = 5; int c = a + b; // c的值为8
        • 浮点数相加:double d1 = 2.5; double d2 = 3.5; double sum = d1 + d2; // sum的值为6.0
        • 字符相加:char ch1 = 'A'; int ch2 = 1; char result = (char)(ch1 + ch2); // result的值为'B',因为'A'的Unicode码值加1得到'B'的Unicode码值
        • 字符串拼接:string str1 = "Hello"; string str2 = " World"; string str3 = str1 + str2; // str3的值为"Hello World"
    • 减法(-)
      • 功能:计算两个操作数的差。适用于整数和浮点数。
      • 示例
        • int x = 7; int y = 3; int difference = x - y; // difference的值为4
        • double d3 = 5.0; double d4 = 2.0; double sub = d3 - d4; // sub的值为3.0
    • 乘法(*)
      • 功能:求两个操作数的乘积。操作数可以是整数或浮点数。
      • 示例
        • int m1 = 4; int m2 = 6; int product = m1 * m2; // product的值为24
        • double p1 = 3.0; double p2 = 4.0; double multiply = p1 * p2; // multiply的值为12.0
    • 除法(/)
      • 功能:进行两个操作数的除法运算。对于整数相除,如果不能整除,结果会舍去小数部分;对于浮点数相除,则会得到精确的商。
      • 示例
        • 整数除法:int div1 = 7 / 2; // div1的值为3
        • 浮点数除法:double div2 = 7.0 / 2.0; // div2的值为3.5
    • 取余(%)
      • 功能:计算除法运算的余数。主要用于整数,对于浮点数虽然语法允许,但实际应用场景较少。
      • 示例
        • int remainder = 10 % 3; // remainder的值为1

    关系操作符

    • 等于(==)
      • 功能:比较两个操作数是否相等。可以用于比较基本数据类型(如整数、浮点数、布尔型、字符等)和引用数据类型(比较的是引用是否指向同一个对象)。
      • 示例
        • 基本数据类型比较:bool equal1 = (5 == 5); // equal1的值为true
        • 引用数据类型比较(以字符串为例):string s1 = "abc"; string s2 = "abc"; bool equal2 = (s1 == s2); // equal2的值为true,因为在C#中字符串字面量相同会指向同一个对象(在某些情况下)
    • 不等于(!=)
      • 功能:判断两个操作数是否不相等。
      • 示例
        • bool notEqual = (3!= 4); // notEqual的值为true
    • 大于(>)
      • 功能:检查左边的操作数是否大于右边的操作数。适用于整数、浮点数等有序数据类型。
      • 示例
        • bool greater = (7 > 5); // greater的值为true
    • 大于等于(>=)
      • 功能:判断左边的操作数是否大于或等于右边的操作数。
      • 示例
        • bool greaterOrEqual = (5 >= 5); // greaterOrEqual的值为true
    • 小于(<)
      • 功能:确定左边的操作数是否小于右边的操作数。
      • 示例
        • bool less = (3 < 4); // less的值为true
    • 小于等于(<=)
      • 功能:检查左边的操作数是否小于或等于右边的操作数。
      • 示例
        • bool lessOrEqual = (4 <= 4); // lessOrEqual的值为true

    逻辑操作符

    • 逻辑与(&&)
      • 功能:对两个布尔表达式进行逻辑与运算。只有当两个表达式都为true时,结果才为true;如果第一个表达式为false,不会再计算第二个表达式(短路求值)。
      • 示例
        • bool result1 = (5 > 3 && 2 < 4); // result1的值为true
        • bool result2 = (false && true); // result2的值为false
    • 逻辑或(||)
      • 功能:对两个布尔表达式进行逻辑或运算。只要两个表达式中有一个为true,结果就为true;如果第一个表达式为true,不会再计算第二个表达式(短路求值)。
      • 示例
        • bool result3 = (5 > 6 || 3 < 4); // result3的值为true
        • bool result4 = (false || false); // result4的值为false
    • 逻辑非(!)
      • 功能:对一个布尔表达式进行逻辑非运算。如果原表达式为true,结果为false;如果原表达式为false,结果为true
      • 示例
        • bool result5 =!(5 == 6); // result5的值为true

    赋值操作符

    • 简单赋值(=)
      • 功能:将右边表达式的值赋给左边的变量。
      • 示例
        • int num = 10; // 将10赋值给num变量
    • 复合赋值(以 += 为例,其他类似)
      • 功能:先对左边的变量和右边的表达式进行指定的算术或位运算,然后将结果赋值给左边的变量。例如,a += b等价于a = a + b
      • 示例
        • int var1 = 5; var1 += 3; // 等价于var1 = var1 + 3,此时var1的值为8
        • double var2 = 2.0; var2 *= 3.0; // 等价于var2 = var2 * 3.0,此时var2的值为6.0

    位操作符

    • 按位与(&)
      • 功能:对两个整数操作数的二进制位进行与运算。只有当两个操作数的对应位都为1时,结果位才为1,否则为0。
      • 示例
        • int bit1 = 5; // 二进制为0101
        • int bit2 = 3; // 二进制为0011
        • int resultBit = bit1 & bit2; // 结果为0001,即1
    • 按位或(|)
      • 功能:对两个整数操作数的二进制位进行或运算。只要两个操作数的对应位中有一个为1,结果位就为1。
      • 示例
        • 以上面的bit1bit2为例,int resultOr = bit1 | bit2; // 结果为0111,即7
    • 按位异或(^)
      • 功能:对两个整数操作数的二进制位进行异或运算。当两个操作数的对应位不同时,结果位为1,相同时为0。
      • 示例
        • 还是以bit1bit2为例,int resultXor = bit1 ^ bit2; // 结果为0110,即6
    • 按位取反(~)
      • 功能:对一个整数操作数的二进制位进行取反运算。0变为1,1变为0。
      • 示例
        • int bit3 = 5; // 二进制为0101
        • int resultNot = ~bit3; // 结果为1010,对于有符号整数,在补码表示下为 - 6
    • 左移(<<)
      • 功能:将一个整数操作数的二进制位向左移动指定的位数。左边移出的位被丢弃,右边补0。
      • 示例
        • int numLeft = 2; // 二进制为0010
        • int resultLeft = numLeft << 1; // 向左移1位,结果为0100,即4
    • 右移(>>)
      • 功能:将一个整数操作数的二进制位向右移动指定的位数。对于无符号整数,左边补0;对于有符号整数,左边补符号位。
      • 示例
        • int numRight = 4; // 二进制为0100
        • int resultRight = numRight >> 1; // 向右移1位,结果为0010,即2
        • int signedNum = -4; // 二进制为1100(补码表示)
        • int signedResultRight = signedNum >> 1; // 向右移1位,结果为1110(补码表示),即 - 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生命不息-学无止境

你的每一份支持都是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值