Napisałem głupie rozwiązanie dla tego, lepszego przepisu? Widać tam wiele bezużytecznych konwersji.Go - przekształcić ciąg, który reprezentuje liczbę binarną w 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"))
}
Poniższe odpowiedzi są zalecane, ale jeśli naprawdę chcesz zrobić konwersję samemu, można to zrobić bez pomocy bibliotek. Stwórz 'wynik' int i dla każdej iteracji pętli:' result = (result << 1) | (n-'0 ') ' – axw