位運算和取模運算的運算效率對比


前言

  總說計算機是擅長於做位運算的,那么到底它有多擅長呢?

  通過簡單的測試,來探究一樣位運算和取模運算的運算效率對比。

一、測試代碼:

 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倍。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM