用《叩响C#之门》复习C#基础知识 第三章 运算符和表达式
这章基本上写的中规中矩,和一般的入门书籍差不多,但即便这样,作者的认真还是让人佩服!写点自己的体会和需提醒自己的地方
1、真是惭愧,一上来就发现自己连基姆拉尔森公式都不知道,真的很厉害,轻松算出日期所对应的星期几。
int week=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7+1;
2、在算数中“/”除法,对于整型,除之后得到的必定为整型,如5/2==2;对于实数,被除后必定为实数,而且运算正确,如 5.0/2.0==2.5。
3、希望键盘输入数字,要用转换,如:Convert.ToDouble(Console.ReadLine());
4、C#提供了大量的数学函数,为Math类,常用函数如下:
乘方 Math.Pow(2,3);//代表2的3次方
开方 Math.Sqrt(16);//16开方为4
e的次方 Math.Exp(7);//e7
绝对值 Math.Abs(-3);//|-3|
对数 Math.Log(8,2);//log28
常用对数 Math.Log10(100);//lg100
正弦函数 Math.Sin(Math.PI/3);//sin∏/3
余弦函数 Math.Cos();
正切函数 Math.Tan();
5、自增自减符
口令是:后置先使用后自增;前置先自增后使用
6、运算符的优先级不管如何,为了程序便于理解,最好还是加括号,增强可读性
7、类型转换中的显式转换时,可以使用checked关键字对显式转换进行检查,如
int n=9999999;
short s=checked((short)n);
就会因为溢出,程序产生报警。如果不用checked,short型会将int型超出short型位数以外的数据全部丢掉,这叫截断,程序不会报错,但转换过去的数据与元数据不一样,数据发生了丢失。除了checked来检查溢出,也可在菜单中选择“项目”—>“属性”—>“生成”—>“高级”,再“检查运算上溢/下溢”复选框,来检查溢出,此时,除非语句中使用关键字unchecked,都会对所有的转换进行溢出检查。
Convert.To…()的转换,都是要进行溢出检查,与checked关键字及项目里属性设置无关。
如:
int n = 9999999;
long l = Convert.ToInt32(n);// 就是对的
short s = Convert.ToInt16(n);//就会报错