我为此写了一个愚蠢的解决方案,有更好的建议吗? 你可以看到那里有很多无用的转换。
package main
import (
"fmt"
"strconv"
"math"
)
func conv(str string) int {
l := len(str)
result := 0.0
for i,n := range str {
number,_ := strconv.Atof64(string(n))
result += math.Exp2(float64(l-i-1))*number
}
return int(result)
}
func main() {
fmt.Println(conv("1001"))
}
result
设为整数类型,在循环的每次迭代中,执行result = (result<<1)|(n-'0')
。 - axw