四 运算符与表达式
1、运算符的定义与表达式的定义
自增自减:++ --
算术运算符:+ (加) - (减) *(乘) /(除) %(求余 取模)
关系运算符:>(大于) < (小于) >=(大于等于) <=(小于等于) ==(等于) !=(不等于)
位运算符:&(位与) |(位或) ~ (取反) ^(异或) <<(左移) >>(右移)
逻辑运算符:&& (逻辑与) ||(逻辑或) !(逻辑非)
条件运算符:表达式?值1:值2
赋值运算符:= (把右边数赋值左边) += (-= *= /= %= &=)
一元运算符 二元运算符 三元运算符
2、表达式的定义:
由操作符合操作数所构成的式子
表达式是有值
1+2----算术表达式的结果就是你计算的结果
1>2 --关系表达式值都是bool类型(真 假)
2&10--位运算表达式值一般是数值
表达式1 && 表达式2: 逻辑表达式的结果一般是bool类型
表达式?值1:值2:条件表达式的值的判断---表达式是真--值1 假--值2
//条件表达式
bool b1 = false; //先定义一个bool值
string s1 = b1 ? "正确" : "错误"; //表达式?值1:值2 表达式定义的数据类型跟值的数据类型一致
int a1=b1 ? 1 : 0;
Console.WriteLine(s1); //打印值 "错误"
Console.WriteLine(s1); //打印值 0
a+=1:复合赋值 a=a+1
优先级:
括号 单目最高
同级从左到右 条件从右往左
++a 先加后用
a++ 先用后加
3、位运算符和逻辑运算符的区别
位运算符:一般都是整型变量计算,更不能是小数
&:只要有一个是0就是0
| :只要有一个是1就是1
^ : 相同取0 不同取1
逻辑运算符:表达式计算
&& 如果第一个表达式为假 后面是不会计算的 提高效率原则、--结果为假
|| 如果第一个表达式为真,后面不会计算的 ---结果为真
注意:
1、如果你的小的类型和大的类型进行运算,小类型会自动转换为大类型
2、万能转换
//万能转换公式
int k6 = 3;
Convert.ToByte(k6); //int==>byte
Convert.ToDouble(k6); //int==>doubie
Convert.ToChar(k6); //int==>char
Convert.ToString(k6); //int==>string
string str8 = "3";
Convert.ToByte(str8); //string==>byte
Convert.ToChar(str8); //string==>char
Convert.ToInt16(str8); //string==>int
3、左移:相当于乘以2的几次方
右移:相当于除以2的几次方
// << 左移 相当于乘以2的次方,左移3位==除以2的3次方
int u5 = 3; //0000 0011
int i5 = 13; //0000 1101
Console.WriteLine(3 << u5); //左移五位
//>>右移 相当于除以2的次方,右移3位==除以2的3次方
int u6 = 3; //0000 0011
int i6 = 13; //0000 1101
Console.WriteLine(i6 >> 4); //右移4位