3. 表达式和运算符
一、表达式:
表达式是由数字、运算符、数字分组符号(括号)、自由变量和约束变量 等以能求得数值的有意义排列方法所得的组合;
约束变量:在表达式中已被指定数值,而自由变量则可以在表达式之外另行指定数值。
二、运算符:
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。运算符大致可以分为 5 种类型:算术运算符、连接运算符、关系运算符、赋值运算符和逻辑运算符。
1. 算术运算符
算术运算符:是完成基本的算术运算 (arithmetic operators) 符号,就是用来处理四则运算的符号。
2. 连接运算符
如下:字符串的累加中用到的 “+” 即为连接运算符:
1 //例1: 2 Console.WriteLine("请输入您的英文名字:"); 3 string name = Console.ReadLine(); 4 Console.WriteLine("这么巧!\n我的名字也是"+name.ToUpper()); 5 Console.ReadLine();
1 //例2:/// <summary> 2 /// 反转字符串 3 /// </summary> 4 /// <param name="strOrignial">原字符串</param> 5 /// <returns>反转之后的字符串</returns> 6 private string RverseString(string strOrignial) 7 { 8 string strResult = null; 9 for (int i = strOrignial.Length-1; i >= 0; i--) 10 { 11 string strTemp = strOrignial.Substring(i, 1); 12 strResult = strResult + strTemp; //字符串累加 13 } 14 return strResult; 15 }
3. 关系运算符
关系运算符:>, <,>=, <=, !=, ==
运算结果为true(1真)或false(0假)两种,即布尔类型 bool;
注意:
1) 操作数为数值类型,则比较两个数的大小;
2)操作数为字符型,则比较两个字符的 Unicode 编码大小。如:A(编码大小为65)与a(编码大小为32);
3)操作数为两个字符串,则只能用==或!=,如果试图用<等时,编译器会报错。
1 //例: 2 static void Main(string[] args) 3 { 4 bool mybool; 5 int a = 5; 6 int b = 7; 7 mybool = a > b; 8 Console.WriteLine(mybool); 9 Console.ReadKey(); 10 } 11 //运行结果为false
4. 赋值运算符
“ = ”:为简单赋值,其他则为复合赋值运算符
如:“+=” 例 var1+=var2→ var1=var1+var2;
“-=” 例 var1-=var2→ var1=var1-var2;
其他的如:*= /= %=
5. 逻辑运算符
一、条件布尔运算符:(逻辑)
&&(与):var3=var1&&var2 //同时true结果true
|| (或) : //一个true结果true
! (非) :var3=!var1 //逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。
^(异或): //有且只有一个为true(真)结果为true
二、布尔运算符:(按位)用于位运算中,一般指对于二进制的操作
& (与)
| (或)
//例: int m1 = 5; int m2 = 4; Console.WriteLine(m1&m2); Console.ReadKey(); //结果为4
// 5 101 // 4 100
//--------------- // 100→4
三、位运算符
(1) ~ 按位取反, & 与,| 或,^ 异或,<< 左移,>> 右移;
注: <<左移:var3=var1<<var2 //var1向左移动var2位,将所得的值赋给var3。
//例: static void Main(string[] args) { int num1 = 4; int num2 = 2; Console.WriteLine(num1<<num2); Console.ReadKey(); } //结果为16 //因为4 100 // num1<<num2 即向左移动两位 //得 10000→16
注释:所谓向左移动两位即在二进制数后加两个0,如:二进制数11向左移动两位即得1100→12;
所谓向右移动两位即把二进制数后两位删掉,如:二进制数1100向右移动两位得11→3。如果位数不足则结果为0,如二进制数11向右移动3位则结果为 0。
6. 单位换算
bit(位):在计算机存储中所有数据都采用二进制,二进制的位即我们所说的 bit
1Byte= 8bit //1字节=8位
1K = 1024Byte
1M = 1024K
1G =1024M
1T = 1024G
7. 表达式与数据类型优先级关系
(1)算数 > 关系 > 逻辑运算符 (逻辑非除外,他比算数优先级还高)
算数运算符:+、-、*···
关系运算符:>、<、=···
逻辑运算符:&&、||、!···
(2)加“()”可以强制规定优先级