前言
总说计算机是擅长于做位运算的,那么到底它有多擅长呢?
通过简单的测试,来探究一样位运算和取模运算的运算效率对比。
一、测试代码:
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 }
二、测试结果:(时间单位:毫秒)
计算次数 位运算 取模运算 倍数(位运算:取模运算)
10万: 734 20489 27
100万: 742 20544 27
1000万: 735 20408 27
1亿: 712 19545 27
三、结论
位运算确实比取模运算快得多,大约快了27倍。
希望与广大网友互动??
点此进行留言吧!