我爲此寫了一個愚蠢的解決方案,任何更好的配方? 正如你可以看到很多無用的轉換。Go - 將表示二進制數的字符串轉換爲int
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'成爲int,並且對於循環的每次迭代,結果=(result << 1)|(n-'0')' – axw 2012-02-14 06:04:31