【C#】整数奇偶判断方法及效率

在各种编程语言中,可能会涉及到整型数的奇偶判断问题。各种编程语言的整型数据类型各一,以C#为例,整型有byte,short(ushort为无符号型,后续类型类推),int,long等类型。
我们知道,能被2整除是偶,否则是奇。所以判断的方法有2,第一种是用被判断的数据与1按位与,如果结果是1,则是奇,否则为偶。
第二种是用被判断的数据除以2,余数为1则为奇,否则为偶(整除取余运行叫取模)。
以C#为例,假设要判断的数据为v,则第一种方式的代码为

bool isOdd = ((v & 1) == 1);

第二种方式的代码为

bool isOdd = ((v % 1) == 1);

我以为按位与的结果要高于取模运行。结果出乎我的意料!
看结果:
【C#】整数奇偶判断方法及效率
所以还是要以实际结果为证。
测试代码如下:

            Stopwatch sw = new Stopwatch();
            StringBuilder sb = new StringBuilder();
            int count = 10000000;
            sw.Start();
            for(int i = 0; i < count; i++)
            {
                bool a = ((i & 1) ==1);
            }
            sw.Stop();
            sb.Append("按位与用时:").Append(sw.Elapsed.TotalMilliseconds);
            sw.Restart();
            for (int i = 0; i < count; i++)
            {
                bool a = ((i % 1) == 1);
            }
            sw.Stop();

            sb.Append("取余用时:").Append(sw.Elapsed.TotalMilliseconds);
            MessageBox.Show(sb.ToString());
上一篇:《Scala机器学习》一一3.5 Spark的性能调整


下一篇:C#多线程编程系列(四)- 使用线程池