Ho scritto una soluzione stupida per questo, una ricetta migliore? Come puoi vedere molte conversioni inutili lì.Go - converte una stringa che rappresenta il numero binario in 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"))
}
Le risposte di seguito sono raccomandati, ma se si vuole veramente fare la conversione da soli, lo si può fare senza alcun aiuto dalle biblioteche. Rendi 'result' un int, e per ogni iterazione del ciclo,' result = (risultato << 1) | (n-'0 ') ' – axw