构建高质量的C#代码
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

代码 2-8:整数移位运算(<ShifeDemo>\Program.cs)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ShiftDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            int shiftNum = 5;
            Console.WriteLine("{0} >> 2 = {1}",
                shiftNum, shiftNum >> 2);
            Console.WriteLine("{0} << 2 = {1}",
                shiftNum, shiftNum << 2);
        }
    }
}

运行结果如图2-4所示。

图2-4

2.2.5 高质量代码准则:准确使用整数

理论上讲,整数是计算机里运算最快的数据类型,但这和计算机的字长也有一定的关系,比如在32位的操作系统中,一般认为使用int或uint类型的数据会比其他类型的数值运算更有效率。当然,实际效果究竟如何,你需要在代码进行真实的测试时才会得到准确的结论,稍后我们会看到关于这方面的测试。

实际上,如果我们在代码中使用了整数的字面值,如100、123等,系统会自动将它们当作int类型的数据。如果你需要将整数的字面值指定为一些需要的类型,可以为字面值加下后缀来指定,常用的有:

● U,说明整数为uint类型。

● L,说明整整为long类型。

● UL,说明整数为ulong类型。

实际上,标识数值类型时使用小写字母也是可以的,但小写的L(l)容易和数字1混淆,所以,一般来说,使用大写字母会更便于阅读。

除此之外,在使用整数时,我们应该注意以下几个方面:

● 整数的除法运算结果依然是整数,而不会是浮点数,如果需要得到浮点数结果,应该使用浮点数进行运算。

● 关注整数在运算或类型转换过程中的溢出问题,并需要注意在计算中间值时可能会产生的溢出情况。

● 应预防除数为零的情况。

● 在项目中,应尽可能地制定统一的整数使用标准,比如在没有特殊要求的情况下,就默认使用int类型。