【Golang】二進制這次可能會傷了你的心

一提到二進制,我們通常認為他的運算速度應(yīng)該會很快,因為更接近于底層;那么今天我們就來做一個測試,這次二進制可能要摔跟頭了!

爭端是這樣的:判斷一個數(shù)值的奇偶性,二進制運算快還是求余運算快(一篇CSDN的博客的結(jié)論是二進制運算會快的多)

那么讓我們來寫一個基準(zhǔn)測試:

package test

import (
    "testing"
)

func BenchmarkEr(t *testing.B) {
    var n uint64 = 1 << 63

    t.ResetTimer()

    for i := 0; i < t.N; i++ {
        if n&1 == 1 {

        }
    }
}

func BenchmarkYu(t *testing.B) {
    var n uint64 = 1 << 63

    t.ResetTimer()

    for i := 0; i < t.N; i++ {
        if n%2 == 0 {

        }
    }
}

結(jié)果如下(說明這兩種算法在效率上根本沒有什么差別):


image.png

結(jié)論:二進制當(dāng)然有其優(yōu)勢,單并不是所有的二進制運算都是高效率的;這里除了證明這樣的結(jié)論,更重要的是,在coding時善于做測試,養(yǎng)成好習(xí)慣。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 一、概要 1、數(shù)據(jù)的表示:數(shù)制及其轉(zhuǎn)換、原碼、反碼、補碼、移碼、浮點數(shù)、溢出、算...
    _Jason___閱讀 3,577評論 0 5
  • 網(wǎng)站亂碼問題我們會經(jīng)常碰到,大多見于非英文的中文字符或其他字符亂碼,而且,這類問題常常是因為編碼方式問題,主要原因...
    波段頂?shù)?/span>閱讀 3,328評論 1 9
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,679評論 18 399
  • 怎么說呢,一直就想把自己的童年寫點東西出來,可一細想,就感覺所有的思緒就像爆炸一般涌出來,不知道該從哪入手...
    齊沐陽閱讀 246評論 1 1

友情鏈接更多精彩內(nèi)容