2017-07-09 5 views
1

Je suis nouveau à Go et je travaille sur quelques exercices pour se mettre à jour. Comment puis-je convertir une chaîne représentant une séquence de bits en le type de données approprié dans Go?Travailler avec bitstrings et big.Int dans Go

Pour exemple, je vois que si son un bitstring représentant un nombre de 64 bits, je peux le faire: -

val, err := strconv.ParseInt(bitstring, 2, 64) 

Cependant, si la chaîne binaire représente un plus grand nombre (par exemple 1024 ou 2048 bits), comment puis-je convertir ce nombre au type approprié dans Go? Je crois que le type de gestion des grands entiers dans Go est grand.Int.

Répondre

2

Oui, vous pouvez utiliser le type big.Int et sa méthode Int.SetString(), en passant 2 comme base.

Exemple:

i := big.NewInt(0) 
if _, ok := i.SetString("10101010101010101010101010101010101010101010101010101010101010101010101010", 2); !ok { 
    fmt.Println("Invalid number!") 
} else { 
    fmt.Println(i) 
} 

sortie (essayez le Go playground):

12592977287652387236522