操作方式符是一类说C++继续执行某一的微积分或方法论操作方式的记号。C# 有多样的内建操作方式符,进行分类如下表右图:
微积分操作方式符亲密关系操作方式符方法论操作方式符位操作方式符表达式操作方式符其它操作方式符§4.1 操作方式符和函数基本概念
操作方式符:能协助采用者同时实现并顺利完成这类演算操作方式的命令。
函数:由数组和操作方式符共同组成的字符串,造成单个的值。
§4.2 微积分操作方式符与微积分函数
§4.2.1 微积分操作方式符
微积分操作方式符包涵2个DD91操作方式符(正和负)和5个双眼操作方式符(加、减、乘、除、圣克雷潘)。具体内容记号和相关联机能如下表右图图象右图:
§4.2.2 微积分函数
在函数中采用微积分操作方式符, 则该函数称作微积分函数。
eg:
// #region << 版 本 注 释 >> // /*—————————————————————- // // Copyright (C) 2019 T5450部族 // // 焦敬。 // // // // 配置文档:Program.cs // // 文档机能叙述: // // // // // // 创建人:GeekTribe // // 天数:14:05 // //—————————————————————-*/ // #endregion using System; namespace MSN { class MainClass { public static void Main(string[] args) { int iNum_1 = 12; int iNum_2 = 10; float fNum_1 = 2.5f; float fNum_2 = 2.0f; //加 int sum = iNum_1 + iNum_2;//sum = 22 //减 int sub = iNum_1 – iNum_2;//sub = 2 //乘 int mul = iNum_1 * iNum_2;//mul = 120 //整除 int div = iNum_1 / iNum_2;//div = 1 //浮点除 floatfdiv = fNum_1 / fNum_2;//fdiv = 1.25 float fdiv_1 = fNum_1 / iNum_1;//fdiv_1 = 0.208333 floatfdiv_2 = iNum_1 / fNum_1;//fdiv_2 = 4.8 //取余 int mod = iNum_1 % iNum_2;//mod = 2 Console.WriteLine(“sum = {0}\nsub = {1}\nmul = {2}\ndiv = {3}\nfdiv = {4}\nfdiv_1 = {5}\nfdiv_2 = {6}\nmod = {7}\n”, sum, sub, mul, div, fdiv, fdiv_1, fdiv_2, mod); } } }/*输出结果*/ /* sum = 22 sub = 2 mul = 120 div = 1 fdiv = 1.25 fdiv_1 = 0.2083333 fdiv_2 = 4.8 mod = 2 */注意:
1、如果 +、-、*、/ 演算的两个数中有一个为浮点数, 为防止数据精度丢失,则结果应采用浮点数表示;
2、除法演算(/),默认为整除演算,其数组中除数不能为0, 两整数相除时,其值必须取整,小数位忽略 不计; 若演算的两个数中有一个为浮点数,则结果为浮点数;
3、圣克雷潘演算(%),操作方式符左右两侧数组必须为整数,第二个数组不能为0。
§4.3 亲密关系操作方式符与亲密关系表达式
§4.3.1 亲密关系操作方式符
在微积分中,经常需要比较两个数的大小。在C#语言中, 亲密关系操作方式符的作用就是判断两个数组的大小亲密关系。具体内容记号和相关联机能如下表右图图象右图:
§4.3.2 亲密关系函数
在函数中采用亲密关系运算符, 则该函数称作亲密关系函数。亲密关系操作方式符用于对两个函数的值进行比较,返回一个真值或者假值。其中采用非0数表示真值(一般为数字1), 采用0表示价值。真值表示指定的亲密关系成立, 假值则表示指定的亲密关系不成立。
eg:
// #region << 版 本 注 释 >> // /*—————————————————————- // // Copyright (C) 2019 T5450部族 // // 焦敬。 // // // // 配置文档:Program.cs // // 文档机能叙述: // // // // // // 创建人:GeekTribe // // 天数:14:05 // //—————————————————————-*/ // #endregion using System; namespace MSN { class MainClass { public static void Main(string[] args) { int iNum_1 = 123; int iNum_2 = 456; Console.WriteLine(“iNum_1 > iNum_2 = {0}\n”, iNum_1 > iNum_2); Console.WriteLine(“iNum_1 >= iNum_2 = {0}\n”, iNum_1 >= iNum_2); Console.WriteLine(“iNum_1 < iNum_2 = {0}\n”, iNum_1 < iNum_2); Console.WriteLine(“iNum_1 <= iNum_2 = {0}\n”, iNum_1 <= iNum_2); Console.WriteLine(“iNum_1 == iNum_2 = {0}\n”, iNum_1 == iNum_2); Console.WriteLine(“iNum_1 != iNum_2 = {0}\n”, iNum_1 != iNum_2); } } } /*输出结果*/ /* iNum_1 > iNum_2 = False iNum_1 >= iNum_2 = False iNum_1 < iNum_2 = True iNum_1 <= iNum_2 = True iNum_1 == iNum_2 = False iNum_1 != iNum_2 = True */§4.4 表达式操作方式符与表达式函数
§4.4.1 表达式操作方式符
C程序中常常遇到的表达式记号【=】就是表达式操作方式符, 其作用就是将一个数据赋给一个变量。
eg:
intiNum =100;//变量iNum的值为100§4.4.2 表达式函数
在函数中采用表达式操作方式符, 则该函数称作表达式函数。C#语言中有两种类型的表达式函数:
左值(lvalue):指向内存位置的函数被称为左值(lvalue)函数。左值可以出现在表达式号的左边或右边。右值(rvalue):术语右值(rvalue)指的是存储在内存中这类地址的数值。右值是不能对其进行表达式的函数,也就是说,右值可以出现在表达式号的右边,但不能出现在表达式号的左边。变量是左值,因此可以出现在表达式号的左边。数值型的字面值是右值,因此不能被表达式,不能出现在表达式号的左边。下面是一个有效的语句:
int g = 20;但是下面这个就不是一个有效的语句,会生成编译时错误:
10 = 20;§4.5 方法论操作方式符与方法论函数
方法论操作方式符包涵2个双眼操作方式符(&&(方法论与) 和 ||(方法论或))和1个DD91操作方式符(!(方法论非))。具体内容记号和相关联机能如下表右图图象右图:
§4.5.2 方法论函数
在函数中采用方法论操作方式符, 则该函数称作方法论函数。
eg:
// #region << 版 本 注 释 >> // /*—————————————————————- // // Copyright (C) 2019 T5450部族 // // 焦敬。 // // // // 配置文档:Program.cs // // 文档机能叙述: // // // // // // 创建人:GeekTribe // // 天数:14:05 // //—————————————————————-*/ // #endregion using System; namespace MSN { class MainClass { public static void Main(string[] args) { bool iNum_1 = true; bool iNum_2 = false; Console.WriteLine(“iNum_1 && iNum2 = {0}\n”, iNum_1 && iNum_2); Console.WriteLine(“iNum_1 || iNum2 = {0}\n”, iNum_1 || iNum_2); Console.WriteLine(“!iNum_2 = {0}\n”, !iNum_2); } } } /*输出结果*/ /* iNum_1 && iNum2 = False iNum_1 || iNum2 = True !iNum_2 = True */§4.6 位操作方式符与位函数
位是计算机存储数据的最小单位。一个二进制位可以表示两种状态(1和0),多个二进制位组合起来便可表示多种信息。那么, 什么是二进制呢?
二进制是计算技术中广泛采用的一类数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统采用的基本上是二进制系统,数据在计算机中主要是以【补码】的形式存储的。例如:
1 -> 0000 0001 2 -> 0000 0010 3 -> 0000 0011 -1 -> 1000 0001注意:
二进制:用 0 和 1 表示(8位), 最左边(最高位)是记号位:0表示正数, 1表示负数
正数:原码、反码、补码相同
负数:
原码:相关联正数部分转换二进制后, 高位补1
反码:记号位除外,原码其余各位按位取反, 0 -> 1, 1 -> 0
补码:反码 + 1(原码取反 + 1),
如何将一个十进制数转化成二进制数?
十进制数转成二进制主要有以下几种:
正数:除二取余,然后倒序排列,高位补零
eg:
(115)10=(01110011)2负数:先是将相关联的正整数转换成二进制后,高位补1,对二进制取反,然后对结果再加 1
eg:
(-1)10 = (1000 0001)2小数:对小数点以后的数乘以 2,有一个结果吧,取 结果的整数部分(不是 1 就是 0),然后再用小数部分 再乘以 2,再取结果的整数部分……以此类推,直到小数部分为 0 或者位数已经够了则停止演算。然 后 把获得的整数部分按先后次序排列,就构成了二进制小数部分的字符串;如果小数的整数部分有大于 0 的 整数时该如何转换呢?如以上整数转换 成二进制,小数转换成二进制,然后拼接在一起即可)
eg:
(1.125)10 = (00000001.001)2§4.6.1 位操作方式符
C#语言完全支持位演算,而且也能像汇编语言一样用来编写系统程序。具体内容记号和相关联机能如下表右图图象右图:
注意:
按位与(&):
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
按位或(|):
1 | 1 = 1
0 | 1= 1
1 | 0 = 1
0 | 0 = 0
按位异或(^):
1 | 1 = 0
0 | 1= 1
1 | 0 = 1
0 | 0 = 0
按位取反(~):
1 -> 0, 0 -> 1
公式: ~num = -(num + 1)
注意: 按位取反时, 包涵记号位
左移(<<):每移一位, *2, 左移时, 记号位不动, 右边空出的位置用0填充
右移(>>):每移一位, /2,右移时,记号位不动, 左边空出的位置用与记号位相同的数值填充
§4.6.2 位函数
在函数中采用位操作方式符, 则该函数称作位函数。
eg:
// #region << 版 本 注 释 >> // /*—————————————————————- // // Copyright (C) 2019 T5450部族 // // 焦敬。 // // // // 配置文档:Program.cs // // 文档机能叙述: // // // // // // 创建人:GeekTribe // // 天数:14:05 // //—————————————————————-*/ // #endregion using System; namespace MSN { class MainClass { public static void Main(string[] args) { int iNum_1 = 3; int iNum_2 = -5; Console.WriteLine(“iNum_1 & iNum_2 = {0}\n”, iNum_1 & iNum_2); Console.WriteLine(“iNum_1 | iNum_2 = {0}\n”, iNum_1 | iNum_2); Console.WriteLine(“iNum_1 ^ iNum_2 = {0}\n”, iNum_1 ^ iNum_2); Console.WriteLine(“~iNum_2 = {0}\n”, ~iNum_2); Console.WriteLine(“iNum_1 >> 2 = {0}\n”, iNum_1 >> 2); Console.WriteLine(“iNum_1 << 2 = {0}\n”, iNum_1 << 2); } } } /*输出结果*/ /* iNum_1 & iNum_2 = 3 iNum_1 | iNum_2 = -5 iNum_1 ^ iNum_2 = -8 ~iNum_2 = 4 iNum_1 >> 2 = 0 iNum_1 << 2 = 12 */§4.7 复合表达式操作方式符
§4.7.1 复合表达式操作方式符
复合表达式操作方式符是C#语言中微积分操作方式符与表达式操作方式符相结合而造成的一类操作方式符简写形式。具体内容记号和相关联机能如下表右图图象右图:
§4.7.2 复合表达式函数
在函数中采用复合表达式操作方式符, 则该函数称作复合表达式函数。复合表达式函数是通过先进行微积分演算,然后再将演算结果表达式给变量自身。
eg:
// #region << 版 本 注 释 >> // /*—————————————————————- // // Copyright (C) 2019 T5450部族 // // 焦敬。 // // // // 配置文档:Program.cs // // 文档机能叙述: // // // // // // 创建人:GeekTribe // // 天数:14:05 // //—————————————————————-*/ // #endregion using System; namespace MSN { class MainClass { public static void Main(string[] args) { int iNum = 10; iNum += 5; Console.WriteLine(“+= iNum = {0}\n”, iNum); iNum -= 5; Console.WriteLine(“-= iNum = {0}\n”, iNum); iNum *= 5; Console.WriteLine(“*= iNum = {0}\n”, iNum); iNum /= 5; Console.WriteLine(“\\= iNum = {0}\n”, iNum); iNum %= 3; Console.WriteLine(“mod(iNum) = {0}\n”, iNum); iNum <<=2; Console.WriteLine(” <<= iNum = {0}\n”, iNum); iNum >>= 2; Console.WriteLine(” >>= iNum = {0}\n”, iNum); iNum &= 1; Console.WriteLine(“&= iNum = {0}\n”, iNum); iNum |=2; Console.WriteLine(“|= iNum = {0}\n”, iNum); iNum ^= 3; Console.WriteLine(“^= iNum = {0}\n”, iNum); } } }§4.8 自增和自减操作方式符
C#语言中包涵两个特殊操作方式符:自增操作方式符【++】和自减操作方式符【—】。自增或自减操作方式符对变量的操作方式分别是变量自增1与自减1。
§4.9.1 自增操作方式符
自增操作方式符根据代码编写时相对于数组放置的位置,可分为:前置自增与后置自增两种。
eg:
++iNum;//前置自增 fNum++;//后置自增注意:
前置自增,先进行自增演算,然后再采用增后的新值参与其它演算。
后置自增,先采用变量当前的值参与其它演算,然后再进行自增演算。
eg:
// #region << 版 本 注 释 >> // /*—————————————————————- // // Copyright (C) 2019 T5450部族 // // 焦敬。 // // // // 配置文档:Program.cs // // 文档机能叙述: // // // // // // 创建人:GeekTribe // // 天数:14:05 // //—————————————————————-*/ // #endregion using System; namespace MSN { class MainClass { public static void Main(string[] args) { int m, n = 0; m = 1; m++;//2 Console.WriteLine(“m = {0} , n = {1}\n”, m, n); n = m++;//m:3 n:2Console.WriteLine(“m = {0} , n = {1}\n”, m, n); n = ++m;//4, 4 Console.WriteLine(“m = {0} , n = {1}\n”, m, n); } } }§4.9.2 自减操作方式符
自减操作方式符根据代码编写时相对于数组放置的位置,可分为:前置自减与后置自减两种。
eg:
–dNum_1;//前置自减 dNum_2–;//后置自减注意:
前置自减,先进行自减演算,然后再采用减后的新值参与其它演算。
后置自减,先采用变量当前的值参与其它演算,然后再进行自减演算。
eg:
// #region << 版 本 注 释 >> // /*—————————————————————- // // Copyright (C) 2019 T5450部族 // // 焦敬。 // // // // 配置文档:Program.cs // // 文档机能叙述: // // // // // // 创建人:GeekTribe // // 天数:14:05 // //—————————————————————-*/ // #endregion using System; namespace MSN { class MainClass { public static void Main(string[] args) { int m, n = 0; m = 1; m++;//2 Console.WriteLine(“m = %d , n = %d\n”, m, n); n = –m; Console.WriteLine(“m = {0} , n = {1}\n”, m, n); n = m++;//m:3 n:2 Console.WriteLine(“m = {0} , n = {1}\n”, m, n); n = ++m;//4, 4 Console.WriteLine(“m = {0} , n = {1}\n”, m, n); m–;//4, 3Console.WriteLine(“m = {0} , n = {1}\n”, m, n); } } }§4.9 sizeof操作方式符
作数在当前操作方式系统中所占的字节数(bytes)大小,可采用sizoof()操作方式符。
格式:
sizeof(数组);eg:
// #region << 版 本 注 释 >> // /*—————————————————————- // // Copyright (C) 2019 T5450部族 // // 焦敬。 // // // // 配置文档:Program.cs // // 文档机能叙述: // // // // // // 创建人:GeekTribe // // 天数:14:05 // //—————————————————————-*/ // #endregion using System; namespace MSN { class MainClass { public static void Main(string[] args) { /* sizeof 操作方式符的实例 */ Console.WriteLine(“int 的大小是 {0}”, sizeof(int)); Console.WriteLine(“short 的大小是 {0}”, sizeof(short)); Console.WriteLine(“double 的大小是 {0}”,sizeof(double)); } } }§4.10 条件操作方式符
C#语言中,条件操作方式符属于三目操作方式符,采用【?:】表示。通过条件操作方式符可对一个函数的真假情况进行检验,然后根据检验结果返回另外两个函数中的一个。
格式:
函数1 ?函数2:函数3;eg:
// #region << 版 本 注 释 >> // /*—————————————————————- // // Copyright (C) 2019 T5450部族 // // 焦敬。 // // // // 配置文档:Program.cs // // 文档机能叙述: // // // // // // 创建人:GeekTribe // // 天数:14:05 // //—————————————————————-*/ // #endregion using System; namespace MSN { class MainClass { public static void Main(string[] args) { int iNum = 10; int result = (iNum > 20) ? (iNum + 10) : (iNum + 50); Console.WriteLine(“result = {0}\n”, result); //60 } } }§4.11 is操作方式符
C#语言中,is操作方式符用于判断对象是否为某一类型。
eg:
// #region << 版 本 注 释 >> // /*—————————————————————- // // Copyright (C) 2019 T5450部族 // // 焦敬。 // // // // 配置文档:Program.cs // // 文档机能叙述: // // // // // // 创建人:GeekTribe // // 时间:14:05 // //—————————————————————-*/ // #endregion usingSystem; namespace MSN { class MainClass { public static void Main(string[] args) { int iNum = 10; Console.WriteLine(“iNum is int? {0}”, iNum is int); } } }§4.12 as操作方式符
C#语言中,as操作方式符用于强制类型转换,即使转换失败也不会抛出异常。
eg:
// #region << 版 本 注 释 >> // /*—————————————————————- // // Copyright (C) 2019 T5450部族 // // 焦敬。 // // // // 配置文档:Program.cs // // 文档机能叙述: // // // // // // 创建者:GeekTribe // // 天数:14:05 // //—————————————————————-*/ // #endregion using System; using System.IO; namespace MSN { class MainClass { public static void Main(string[] args) { Object obj = new StringReader(“Hello”); StringReader r = obj asStringReader; } } }