C#的基本运算

  

C#的运算符有三种:一元运算,二元运算和三元运算。所谓二元运算就是参加运算的变量有两个,其他两种类推。

一. 数学运算

一元的包括:+,-,++和--。

如:int x=10; int x1=+x;int x2=-x;那么x1=10;x2=-10.

这两个运算比较简单。二元运算:加、减、乘,除,取余、,对应的符号是+,-,*,/和%;其中前面4个我不想多说,小学就学过,基本上是:变量1=变量2(加减乘除)变量3的模式;主要学习取余运算。例如:x=42%10;结果x=2,其实取余运算和数学上是取模的原理是一样的,就是第一个数字除以第二个数字得到的余数。int y=81%9;那么y=0;这样的运算在小学就回,这里提问的方法不一样。

另外加号+在字符串中的可以当作两个字符串合并。请看下面的例子:

string str1 = "hello";

string str2 = "你好";

string str3 = str1 + str2;

Console.WriteLine("str1={0}",str1);

Console.WriteLine("str2={0}",str2);

Console.WriteLine("str3=str1+str2:{0}",str3);

Console.ReadKey();程序的其他部分省了。

其输出结果是:

 

str1=hello

str2=你好

str3=str1+str2:hello你好

 

自增和自减运算:++,--

这两个运算在后面的循环中有很大的作用,++的作用是自己的值+1,--就是自减1.但在赋值运算的过程 int a=10;

那么:int b=++a;int c=a++;结果b和c是不相等的。

int a = 10;

int a1=a;

int b = ++a;

int c = a++;

Console.WriteLine("a原来的值a1{0}",a1);

Console.WriteLine("a后来的值{0}", a);

Console.WriteLine("b=++a{0}", b);

Console.WriteLine("c=a++{0}", c);

输出的结果是:

 

a原来的值a1:10

a后来的值11

b=++a:11

c=a++:10

 

解释:在b=++a这里,先是a自加+再赋给b;同时用 a1=a;来保存a原来的值。

此后经过a=a1;a的值又变成10;c=a++;这里a先将值赋给c再自增1.

同样++运算也是一样的。总之,如果++或者—在前面,那么就是先自增或者自减,再赋值,如果++和—在后面则是先赋值再自增自减。

二. 赋值运算符号

主要运算包括:=(赋值),+=,-=,*=,/=,%=。

赋值=运算很简单,基本是把两个类型一样的变量的一个的值赋给另一个。

int x = 0; int y;  y = x;剩下的四个运算原理都是一样的,如下面的例题所示:

int x1, x2, x3;

x1 = 11; x2 = 12; x3 = x1;

x1 += x2;//x1=x1+x2;

x2 -= x3;//x2=x2-x3;和x2=x2-x1;一样

Console.WriteLine("x1原来的值是{0}",x3);

Console.WriteLine("x1+=x2后x1的值{0}",x1);

Console.WriteLine("x2-=x1后x2的值{0}",x2);

Console.ReadKey();

结果是:

 

x1原来的值是11

x1+=x2后x1的值23

x2-=x1后x2的值1

 

再看*=;

int x1, x2, x3;

x1 = 11; x2 = 33; x3 = x1;

x1 *= x2;//x1=x1*x2;

x2 /= x3;//x2=x2/x3;和x2=x2-x1;一样

Console.WriteLine("x1原来的值是{0}",x3);

Console.WriteLine("x1*=x2后x1的值{0}",x1);

Console.WriteLine("x2/=x1后x2的值{0}",x2);

输出的结果是:

 

x1原来的值是11

x1*=x2后x1的值363

x2/=x1后x2的值3

 

剩下的结果请读者自己编程体会。

这里要说明的一个地方是:Console.WriteLine("x1*=x2后x1的值{0}",x1);中的{0},这个是使用指定的格式输出,请看:

Console.WriteLine("x1的值是{0},x2的值是{1},x3的值是{2} ",x1,x2,x3);结果是:

 

x1的值是363,x2的值是3,x3的值是11

 

三. 布尔逻辑运算

我们知道bool 类型的变量只有俩个值,true和false;在数学上表示1和0。很多时候要判断当某个条件是否成立才能继续执行,这样就是条件表达式为真-true;

布尔运算符主要有:==(等于),!=(不等),>=(大于等于),<=(小于等于),>(大于),<(小于)。运算示范如下:

变量运算==!=>=<=><
Var1=10 Var2=16falsetruefalsetruefalsetrue

bool flag; flag=(var1==var2);以上面的数据来算,flag=false;其他的一次类推、在运算过程中,可以现定义bool类型的变量,也可以直接实用,要看情况而定。同时要注意运算符两边的变量类型要一致。

四、下面介绍几个逻辑运算:&,|,!,^,&&,||.

介绍下:&是与运算,|是或运算,!是非,^异或运算。

它们的运算法则如下所示:

&运算法则如下所示:var3=var1&var2

bool var1var2var3
truetrueture
TrueFalseFalse
FalseTureFalse
FalseFalsefalse

|,或运算法则如下表:

bool var1var2var3
truetrueture
truefalsetrue
FalseTuretrue
FalseFalsefalse

!,取非运算,这个更简单,true的!就是false,false的!ture;

bool var1,var2;var1=true;var2=!var1;那么var2就等于false;

^,异或运算的原理也比较简单,两个变量只要它们的值是一样的,它们取异或的结果就是false,若一个false,一个true,那么它们异或的结果就是true;

同时介绍下在循环条件等情况下很常见的&&,||运算。这两个与&,|的运算法则是一样的,前面的两个运算性能较好,&&运算中只要第一个变量是false,其结果就是false,后面的不用管了,同理,||运算只要第一个变量是true,那么其结果就是true,这与&和|不一样,后两个运算要所有运算变量都经过运算。本文发表于编程入门网:www.bianceng.cn

五、位的运算符

位的逻辑运算符包括:与&,或|,异或^和非!

与的运算是:将两个操作数的二进制位对应位进行与运算

例如:int p1=10;int p2=7;

P1的二进制表示:1010

P2的二进制表示:0111;两者与运算是:0010:即:2;

或运算:操作数的二进制对应位进行或运算:1111:即:15;

异或:结果:1101:13;

P1的非:0101:5。

位移运算:右移>>,左移<<

Var1=var2<<var3;表示var2左移var3个位数

Var2=5;var3=2;具体过程是:0101—>010100:得到20;

六、位运算和逻辑运算的赋值运算

操作数:op1,op2

运算符表达式结果
&=op1&=op2op1=op1&op2
|=op1!=op2op1=op1|op2
^=op1^=op2op1=op1^op2
>>=op1>>=op2op1=op1>>op2
<<=op1<<=op2op1=op1<<op2

以上的操作请各位读者自己编程体会。

到此,C#的各种运算基本上介绍完了,但是如果一个表达式有多个操作符,那么不同的操作符的优先权来决定谁先执行,同时在操作的时候是从左边向右边执行。各种操作符的优先权高低如下表所示:

优先级操作符7^,
1++,--(前缀).(),+,-,!,~8|
2*,/,%9&&
3+,-10||
4>>,<<11=,*=,+=,-+.<<=,>>=,&=,^=,|=
5==,!=12++,--(后缀运算)
6&  

同时还有一个三目运算:表达式?a:b;

举例说明:int x=4>5? 4 :5;

意思就是:4>5? 是否成立,如果成立那么x=4,否则x=5;

此后开始正式进入C#的学习了,下节开始学习条件语句if和循环语句 for each、for和while。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值