小编Olu*_*upo的帖子

为什么 Go 中的按位运算符比除法和取模慢?

通常我用 C 语言编程并经常使用按位运算符,因为它们更快。现在,我在使用按位运算符或除法和取模解决 Project Euler Problem 14 时遇到了这种时间差异。该程序是用go version go1.6.2.

带位运算符的版本:

package main

import (
    "fmt"
)

func main() {
    var buf, longest, cnt, longest_start int    
    

    for i:=2; i<1e6; i++ {
        buf = i
        cnt = 0
        for buf > 1 {
            if (buf & 0x01) == 0 {
                buf >>= 1
            } else {
                buf = buf * 3 + 1
            }
            cnt++
        }
        if cnt > longest {
            longest = cnt
            longest_start = i
        }
    } …
Run Code Online (Sandbox Code Playgroud)

go bitwise-operators

2
推荐指数
1
解决办法
778
查看次数

标签 统计

bitwise-operators ×1

go ×1