判断偶数几种方法性能
?
判断一个数是否偶数,在编程中经常用的,大部分人都用的是 i%2==0 来判断吧。
?
以下几种方式
1: (i%2)==0
?
2:? (i&0x01)==0
?
3:? (i<<31)==0
?
4:? (i&1)==0
?
?
有次一个群聊着1~10000 的含1的偶数个数 求解
特地写了一小段 分别用以上几种方式测试了下
?
int len = 0;long t1 = System.currentTimeMillis();for(int i=0;i<100000000;i++){if((i%2)==0){String s = i+"";if(s.indexOf("1")!=-1)len++;}}long t2 = System.currentTimeMillis()-t1;System.out.println("count-->"+len);System.out.println("date-->"+t2);
?由于10000 各种测试差距不大,我调整到1亿
以下分别是t2的结果:
1:13344?????ms
2:12172???? ms?
3:12063???? ms?
4:12016???? ms?
?
同一台机做测试的,由于各自的硬件不等,以上时间也不等,大家有兴趣可以自己测试下。
?
网路上还有种写法 我没测试成功 (i^1)?=i? , 大家有兴趣可以自己测试下。