在我们日常的编程当中,常常会遇到判断某个整数属于奇数还是偶数的情况。
大家一般的处理做法是用这个整数和2取模。然后判断是等于1还是等于0。
这里,我要为大家介绍一种快速有效的判断做法,利用2进制进行判断。
大家都知道,奇数的最低位一定是1,而偶数的最低位一定是0.所以我们可以根据这个特性,让需要判定的整数和1进行“与”运算,这样就只留下了原数的最低位,然后直接判断这个数等于1还是等于0即可。
实现代码如下:
1class Program
2 {
3 static void Main(string[] args)
4 {
5
6 bool s = OddEven.IsEven(4);
7
8 Console.WriteLine(s);
9
10 s = OddEven.IsOdd(55877554);
11
12 Console.WriteLine(s);
13 }
14 }
15
16 /**//// <summary>
17 /// 判断一个整数是奇数还是偶数。
18 /// </summary>
19 class OddEven
20 {
21 static private int s = 1;
22
23 static public bool IsEven(int a)
24 {
25 if ((a & s) == 0)
26 {
27 return true;
28 }
29 else
30 {
31 return false;
32 }
33
34 }
35
36 static public bool IsOdd(int a)
37 {
38 return !IsEven(a);
39 }
40 }
2 {
3 static void Main(string[] args)
4 {
5
6 bool s = OddEven.IsEven(4);
7
8 Console.WriteLine(s);
9
10 s = OddEven.IsOdd(55877554);
11
12 Console.WriteLine(s);
13 }
14 }
15
16 /**//// <summary>
17 /// 判断一个整数是奇数还是偶数。
18 /// </summary>
19 class OddEven
20 {
21 static private int s = 1;
22
23 static public bool IsEven(int a)
24 {
25 if ((a & s) == 0)
26 {
27 return true;
28 }
29 else
30 {
31 return false;
32 }
33
34 }
35
36 static public bool IsOdd(int a)
37 {
38 return !IsEven(a);
39 }
40 }