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)加“()”可以强制规定优先级 

 

posted @ 2017-10-04 11:59  LiuChangwei  阅读(440)  评论(0编辑  收藏  举报