判断一个数是否偶数,在编程中经常用的,大部分人都用的是 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 , 大家有兴趣可以自己测试下。