总说计算机是擅长于做位运算的,那么到底它有多擅长呢?
通过简单的测试,来探究一样位运算和取模运算的运算效率对比。
一、测试代码:
1 public class BitAndModulus { 2 @Test 3 public void bit() { 4 int number = 10000 * 10;//分别取值了10万、100万、1000万、1亿 5 int a = 1; 6 7 long start = System.currentTimeMillis(); 8 for(int i = number; i > 0 ; i++) { 9 a &= i; 10 } 11 long end = System.currentTimeMillis(); 12 System.out.println("位运算耗时: " + (end - start)); 13 } 14 15 @Test 16 public void modulus() { 17 int number = 10000 * 1000;//分别取值了10万、100万、1000万、1亿 18 int a = 1; 19 20 long start = System.currentTimeMillis(); 21 for(int i = number; i > 0; i++) { 22 a %= i; 23 } 24 long end = System.currentTimeMillis(); 25 System.out.println("取模运算耗时: " + (end - start)); 26 } 27 }