La conversion d'un entier en sa représentation binaire
Quiconque a une idée si il existe une fonctionnalité intégrée dans le jeu de Go pour la conversion de tous les types numériques binaires numéro de formulaire.
Par exemple, si 123
a l'entrée, la chaîne "1111011"
serait la sortie.
- Ceci est fait automatiquement. Les nombres décimaux sont convertis et utilisé sous forme binaire.
- Les numéros dans un langage de programmation sont déjà stockées sous forme binaire. Peut-être que vous avez voulu dire leur affichage en base 2? Ou 32 bits en complément à deux de la base 2? Bien sûr, ni du sens, pour les nombres à virgule flottante, où vous voulez que la représentation textuelle de l'IEEE quel que soit le format. Ou tout simplement de la sortie des premières séquences de bits à un flux?
Vous devez vous connecter pour publier un commentaire.
La
strconv
paquet aFormatInt
, qui accepte unint64
et vous permet de spécifier la base.DÉMO: http://play.golang.org/p/leGVAELMhv
fmt.Println(strconv.FormatInt(n, 2))
est-11
, mais j'en veux deux du compliment de format.Voir aussi la fmt package:
s := fmt.Sprintf("%b", 123)
Ce code fonctionne sur les grands entiers
*big.Int
:parce que
*big.Int
met en œuvre lafmt.Formatter
interface.Prises de https://stackoverflow.com/a/23317788/871134
Bâtiment sur la réponse fournie par @Mark
Bien que l'OP a demandé comment imprimer un entier, j'ai souvent envie de regarder plus de 64 bits de données, sans que mes yeux ahurissant:
voir ce code dans play.golang.org
[]byte
. À plusieurs reprises ajoutant à unstring
comme ça, c'est inefficace, le mieux est d'utiliser quelque chose comme unbytes.Buffer
(ou si seulement il n'a zéros, en utilisant seulementstrconv.AppendInt
avec un simple[]byte
). L'appel destrings.TrimSpace
à chaque itération, juste pour le seul espace supplémentaire est très inefficace. E. g. quelque chose comme play.golang.org/p/ifobZWv_du sur un de 1 ko d'entrée est d'environ 50x plus rapide et utilise ~1/50e de la mémoire.Dangereux pointeurs doivent être utilisés pour représenter correctement les nombres négatifs au format binaire.
https://play.golang.org/p/GxXjjWMyC4x