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); } } }
结果