C#运算符和表达式(及类型转换)

运算符和表达式(及类型转换)

北京奥运会开幕的日期是2008年8月8日,这天是星期几呢?下面的程序可以帮我 们计算出来。
 static void Main(string[] args)
 {
     //y-年 ,m-月,d-日
     int y = 2008;
     int m = 8;
     int d = 8;
     int week = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400 + 1) % 7;
     Console.WriteLine("2008年8月8日是星期{0}",week);
 }
算数运算符
运算符 含义 C#示例 数学表示 类别
+ a + b; a+b 二元
- 5 - 1; 5-1 二元
* 5 * 3; 5×3 二元
/ x / y; x÷y 二元
% 取余 n % 7; n mod 7 二元
 static void Main(string[] args)
 {
     double x;
     double y;
     Console.Write("x = ");                        //提示输入x 
     x = Convert.ToDouble(Console.ReadLine());    //读取自变量x的值                   
     y = x * x * x + 3 * x * x - 24 * x + 30;     //计算函数值y                    
     Console.WriteLine("y = " + y);               //输出函数值y  
 }

Math 类中的常用函数

功能 函数 C#示例 数学表示 结果
乘方 Math.Pow() Math.Pow( 2 , 3 ); 2×2×2 8
开方 Math.Sqrt() Math.Sqrt( 16 ); 16 的开方 4
e的次方 Math.Exp() Math.Exp( 8 ); e的8次方 2980.96
绝对值 Math.Abs() Math.Abs( –3 ); |-3| 3
对数 Math.Log() Math.Log( 8 , 2 ); log2 8 3
常用对数 Math.Log10() Math.Log10( 100 ); lg100 2
正弦函数 Math.Sin() Math.Sin(Math.PI/3 ); sinπ/3 3的开平方/2
余弦函数 Math.Cos() Math.Cos(Math.PI/3); cosπ/3 1/2
正切函数 Math.Tan() Math.Tan(Math.PI/3); tanπ/3 3的开平方

Math 类中的常数

数学含义 代码表示 近似值
π Math.PI 3.14159265358997
e Math.E 2.71828182845905

C#中的符合赋值运算符

功能 类别 示例 等价表示
+= 二元 ave += 100 ave = ave + 100
-= 二元 ave -= 100 ave = ave - 100
*= 二元 ave *= 100 ave = ave * 100
/= 二元 ave /= 100 ave = ave / 100
%= 二元 ave %= 100 ave = ave % 100

部分优先级

优先级 运算符 说明
1 ++x,–x 用作前置时
2 x++,x– 用作后置时
3 *,/,% 乘,除,取余
4 <<,>> 左移,右移
5 +,- 加,减
6 =,*=,/=,+=,-= 赋值

隐式类型转换

  //隐式转换(自动转换),就是从小范围到大范围的转换
  //byte

显示类型转换

 //从大范围到小范围的转换

 uint int1 = 20;
 //在被转换的数据前面加上(目标类型) 进行显示转换
 int int2 = (int)int1;


 // 显示转换(强制转换) 可以会导致数据丢失
 uint int3 = 256;
 byte byte1 = (byte)int3;
 Console.WriteLine(byte1);//0

 double dou1 = 22.9;
 int int4 =(int) dou1;
 Console.WriteLine(int4);//22


 //并不是所有的显示转换都可以转换
 string s1 = "吴亦凡";
 //char c1 = (char) s1;
 char c2 = 'c';
 //  string s2 =(string) c2;

 //char类型 和int 类型之间 是根据ASCII码 进行转换的
 //A-Z  ===> 65-90  a-z===> 97-122
 char cc = 'B';
 int ii = (int)cc;
 Console.WriteLine(ii);//65

 int ii2 = 67;
 char cc2 = (char)ii2;
 Console.WriteLine(cc2);


字符串和其他类型之间的转换

 int in1 = 123;
 double do1 = 123.123;
 bool b = true;

 in1.ToString();//123 ===> "123"
 do1.ToString();//123.123===>"123.123"
 b.ToString(); // true  ===> "true"


 double num = 10086.123456;
 Console.WriteLine(num.ToString("F1"));
 Console.WriteLine(num.ToString("F2"));


 //字符串转其他的类型

 //string st1 = "123";
 //int in7=int.Parse(st1);

 //string st2 = "123.123";
 //double dou2=double.Parse(st1);

 

 //注意:要保证能转换成对应的类型,有些特殊格式 会报错
 //int in8=int.Parse("123.123");
 //int in9 = int.Parse("1a");


 //布尔值的转换 不区分大小写 但是单词之间不有空格
 string tr = "TRue";
 bool b1 = bool.Parse(tr);
 Console.WriteLine(b1);


你可能感兴趣的:(C#,.NET,算法,c#)