上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
代码 2-7:++运算(<PlusPlusDemo>\Program.cs)
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace PlusPlusDemo { class Program { static void Main(string[] args) { //后++运算 int i = 10; Console.WriteLine(">>>>后++运算"); Console.WriteLine("表达式的值:{0}", i++); Console.WriteLine("计算后i的值:{0}", i); Console.WriteLine(); //前++运算 i = 10; Console.WriteLine(">>>>前++运算"); Console.WriteLine("表达式的值:{0}", ++i); Console.WriteLine("计算后i的值:{0}", i); } } }
代码运算的结果如图2-3所示。
图2-3
其中,我们可以看到,后++运算时,表达式先返回i的值(10),然后再进行i=i+1的运算,完成后i的值就是11。
在进行前++运算的时候,表达式会先进行i=i+1的计算,这时表达式和i的值都为11。
如果我们只需要使用计算后i的值,则两种方式的结果是一样的,但如果需要使用表达式的值时,就需要区别前++和后++的运算方式的差异了。
前--和后--的运算与++运算原理是一样的,只不过是做减1的工作,而不是加1,这里就不再详细介绍了。
2.2.4 移位运算
移位运算包括“<<”和“>>”两种,其格式如下:
exp1>>exp2;
exp1<<exp2;
exp1可以是int、uint、long或ulong类型的数据,而exp2必须是一个int类型的数据。其中:
● >>运算符,将exp1的二进制形式向右移动exp2指定的位数,如果exp1是int或long类型,高位将保留符号,其他位的数据向右移动,移出的位数据将被丢弃,移过的空位将设置为0。如果exp1是uint或ulong类型,则将exp1的二进制形式整体向右移动exp2指定的位数,移出的位数据将被丢弃,移过的空位将设置为0。
● <<运算符,将exp1的二进制形式向左移动exp2指定的位数,移出的位数据将被丢弃,移过的空位设置为0。
代码2-8给出了这两种运算符的使用示例。