首页 > 分享 > (4)C# 基础 ——运算符的使用

(4)C# 基础 ——运算符的使用

.NET C# Web开发学习之路——运算符的使用

运算符针对操作数进行,同时产生计算结果。运算符是一种专门用来处理数据运算的特殊符号,数据变量结构运算符形成完整的程序运算语句。

1. 算术运算符

“+”,“-”,“/”,“*”,“%”运算符都称为算数运算符,他们分别进行加、减、除、乘、取余运算。

//加法运算符 + int m1 = 927; int m2; m2 = m1 + m1; Console.WriteLine("加法运算符 + :{0}", m2.ToString()); //减法运算符 - decimal r1 = (decimal)1112.82; decimal r2 = (decimal)9270.81; decimal r3; r3 = r2 - r1; Console.WriteLine("减法运算符 - :{0}", r3.ToString()); //乘法运算符 * int int1 = 10; int int2 = 20; int intMul = 0; intMul = int1 * int2; Console.WriteLine("乘法运算符 * :{0}", intMul.ToString()); //除法运算符 / int chushu1 = 45; int chushu2 = 5; int shang; shang = chushu1 / chushu2;//这里省略了 对除数是否为0的判断 Console.WriteLine("除法运算符 /:{0}", shang.ToString()); //求余运算符 % int l1 = 45; int l2 = 10; int l3; l3 = l1 % l2; Console.WriteLine("求余运算符 %:{0}", l3.ToString());

123456789101112131415161718192021222324252627282930313233

程序运算结果:
加法运算符 + :1854
减法运算符 - :8157.99
乘法运算符 :200*
除法运算符 /:9
求余运算符 %:5

2. 赋值运算符

赋值运算符用来为变量、属性和事件等元素赋值,包括“=”,“!=”,“+=”,“-=”,“*=”,“/=”,“%=”。“&=”,“|=”,“&=”,“<<=”,“<<=”等运算符。赋值运算符的左操作数必须是变量、属性、索引器或事件类型的表达式,如果赋值运算符两边操作数类型不一致,急需要首先进行类型转换,然后在赋值。

在使用赋值运算符是,右操作数表达式所属的类型必须可隐式转换为左操作数所属的类型,运算时将右操作数的值赋给左操作数制定的变量、属性或索引器元素。

名称运算符运算规则意义赋值=将表达式赋值给变量将右边的值给左边加赋值+=x+=yx=x+y减赋值-=x-=yx=x-y除赋值/=x/=yx=x/y乘赋值*=x*=yx=x*y模赋值%=x%=yx=x%y位与赋值&=x&=yx=x&y位或赋值I=x I= yx=x I y右移赋值.>>=x >>= yx=x >> y左移赋值<<=x <<= yx=x << y异或赋值^=x ^= yx=x ^ y

//赋值运算符 += int i = 927; i += 112; Console.WriteLine("赋值运算符+=:{0}", i.ToString()); 1234

程序运行结果为:
赋值运算符+=:1039

3. 关系运算符

关系运算符可以实现两个值的比较运算,并且在比较之后会返回一个代表运算结果的布尔值。

关系运算符运算符关系运算符说明==等于!=不等于>大于.>=大于等于<小于<=小于等于

//== decimal Q1 = 1981.00m; decimal Q2 = 1982.00m; bool result1; result1 = Q1 == Q2; Console.WriteLine(result1); // != decimal S1 = 1981.00m; decimal S2 = 1982.00m; bool result2; bool result3; result2 = S1 != S2; result3 = !(S1 == S2); Console.WriteLine(result2); Console.WriteLine(result3); //< int U1 = 1112; int U2 = 927; bool result4; result4 = U1 < U2; Console.WriteLine(result4); //> int F1= 18; int F2 = 8; bool result5; result5 = F1 > F2; Console.WriteLine(result5); //<= int X1 = 12; int X2 = 9; bool result6; result6 = X1 <= X2; Console.WriteLine(result6); //>= int T1 = 1112; int T2 = 927; bool result7; result7 = T1 >= T2; Console.WriteLine(result7);

1234567891011121314151617181920212223242526272829303132333435363738394041424344

程序运行结果为:
False
True
True
False
True
False
True

4.逻辑运算符

逻辑运算符用于对两个表达式执行布尔逻辑运算。C#中逻辑运算符大体可以分为按位逻辑运算符和布尔逻辑运算符两种。
按位逻辑运算符是对两个正数表达式的相应位执行位逻辑运算,二布尔逻辑运算符是对两个布尔表达式执行布尔逻辑运算。

4.1 按位“与”运算符 &
用于比较两个整数的相应位。执行位“与”运算时,如果两个数的对应为都是1,返回相应的结果为是1;如果两个整数的相应位都是0或者其中一个是0,则返回相应的结果为是0。

4.2 按位“或”运算符 |
用于比较两个整数的相应位。执行位“或”运算时,如果两个整数的对应为有一个是1或者都是1,返回相应的结果为是1;如果两个整数的对应为都是0,则返回相应的结果为是0;

4.3 按位“异或”运算符 ^
用于比较两个整数的相应位。执行位“异或”运算时,如果两个整数的对应位有一个是1而另外一个是0,返回相应的结果为是1;如果两个整数的对应为都是0或者1,则返回相应的结果为是0;

4.4 布尔“与”运算符 &&
当两个布尔表达式的结果都为真是,则返回结果为真;否则返回结果为假。

4.5 布尔“或”运算符 ||
当两个布尔表达式当中有一个表达式计算结果为真是,则结果为真。当两个布尔表达式的返回计算结果都为假是,则结果为假。

4.6 布尔“异或”运算符 ^
只有当其中一个表达式为真,而另一个表达式为假时,该表达式返回的结果为真;当两个布尔表达式的计算结果都为假或都为真是,则返回结果为假 。

//按位“与”运算符 & int num1 = 1; int num2 = 85; bool iseven; iseven = (num1 & num2)==0; Console.WriteLine(iseven); //分析:首先十进制是1对应的二进制数为00000001,十进制85对应的二进制数为01010101,根据规则得出(1&85)=0, //而上述代码使(1&85)=0,所以返回false; //按位“或”运算符 | int iseven2; iseven2 = (num1 | num2); Console.WriteLine(iseven2); //分析:首先十进制是1对应的二进制数为00000001,十进制85对应的二进制数为01010101,根据规则得出(1|85)=85 //按位“异或”运算符 ^ int iseven3; iseven3 = (num1 ^ num2); Console.WriteLine(iseven3); //分析:首先十进制是1对应的二进制数为00000001,十进制85对应的二进制数为01010101,根据规则得出(1^85)=84 //布尔“与”运算符 & bool bls = false; int Lnum = 20; bool result8; result8 = bls & (Lnum < 30); Console.WriteLine(result8); //布尔“或”运算符 | bool result9; result9 = bls | (Lnum < 30); Console.WriteLine(result9); //布尔“异或”运算符 ^ bool result10; result10 = bls ^ (Lnum < 30); Console.WriteLine(result10);

12345678910111213141516171819202122232425262728293031323334353637

程序运行结果为:
False
85
84
False
True
True

5.移位运算符

对于 X>>N 或X<<.N形式的运算,含义是将X向右或者向左移动N位,得到结果的类型与X相同。在此,X的类型只能是int、uint、long、ulong,N的类型只能是int,或者显式转换为这些类型之一没否则编译程序时会出现错误。

5.1 左移运算符<<
使用左移位运算符可以将数想左移位,其作用是所有的胃都向左移动指定的次数,高位自动丢失,地位以0填充。
5.2 右移运算符>>
使用右移位运算符和左移位相反,低位自动丢失,高位以0填充。

// >> 右移位运算符 uint intMax = 4294967295; uint bytemask = intMax >> 16; Console.WriteLine(bytemask); //<<左移位运算符 uint bytemask2 = intMax << 8; Console.WriteLine(bytemask2); 123456789

程序运行结果为:

65535
4294967040

6.其他特殊运算符

6.1 is 运算符
is运算符用于检查变量是否为指定的类型。如果是,返回真,否则,返回假。

6.2 as 运算符
as运算符用于在兼容的引用类型之间执行转换。

6.3 条件运算符 ?:
条件运算符是来根据布尔型表达式的值返回两个值中的一个。如果条件为True,则返回第一个表达式并以其计算结果为准;如果为False,则计算第二个表达式并以其计算结果为准

6.4 new运算符
new运算符用于创建一个新的类型实例,具有以下三种形式:

对象创建表达式,用于创建一个类类型或者值类型的实例。数组创建表达式,用于创建一个数组类型的实例。代表创建表达式,用于创建一个新的代表类型实例。

6.5 typeof运算符
用于获得系统原型对象的类型,也就是Type对象,Type对象包含关于值类型和引用类型的信息。

//is 运算符 int a = 0; bool result11 = a is int; Console.WriteLine(result11); //as 运算符 object obj = "123你好"; string b = obj as string; Console.WriteLine(b); //条件运算符 ?: //判断2018是不是闰年 int year = 2018; bool isleapyear = ((year % 400) == 0 || ((year % 4) == 0 && ((year % 100) != 0))); string yesno = isleapyear ? "Yes" : "No"; Console.WriteLine(yesno); //new 运算符 string[] strs = new string[2]; strs[0] = "hello"; strs[1] = "world"; for (int j = 0; j < strs.Length; j++) { Console.WriteLine(strs[j]); } //typeof 运算符 Type mytype = typeof(int); Console.WriteLine("类型:{0}",mytype);

123456789101112131415161718192021222324252627282930

程序运行结果为:
True
123你好
No
hello
world
类型:System.Int32

7.运算符的优先级

分类运算符优先级基本x.y、f(x)、a[x]、x++、x–、new、typeof、checked、unchecked1一元+、-、!、~、++、–、(T)x、~2乘除*、/、%3加减+、-4移位<<、>>5比较<、>、<=、>=、as、is6相等==、!=7位与&8位异或^9位或I10逻辑与&&11逻辑或II12条件?:13赋值=、+=、-=、*=、/=、%=、&=、I=、^=、<<=、>>=14

相关知识

C# 重载运算符
C#中 ??、 ?、 ?: 、?.、?[ ]
Java运算符的优先级
c#中字符串比较,==,!=,Compare,Equals的区别
C语言运算符详解
Php 连接运算符
C#桌面宠物金鱼源代码资源
JAVA基础语法02
基于C#制作一个桌面宠物
c语言中逗号运算符的作用

网址: (4)C# 基础 ——运算符的使用 https://m.mcbbbk.com/newsview976441.html

所属分类:萌宠日常
上一篇: 宠物猫配什么宠物比较好?
下一篇: 御剑情缘宠物暴乱最新节日副本3s