Convertir un nombre entier en binaire, sans l'aide de la poubelle de la fonction
Cette fonction reçoit en paramètre un entier et retourne une liste représentant la même valeur exprimée en binaire comme une liste de bits, où le premier élément de la liste est le plus important (à gauche) bits.
Mon heure actuelle, la fonction des sorties '1011'
pour le numéro 11, j'ai besoin de [1,0,1,1]
à la place.
Par exemple,
>>> convert_to_binary(11)
[1,0,1,1]
Pouvez-vous s'il vous plaît poster le code que vous avez jusqu'à présent? Cela sonne comme un devoir à la maison et en affichant le code devrait nous aider à mieux vous aider.
Je reçois un message d'erreur lorsque vous affichez le code dans la description
cliquez sur le bouton modifier c'est là que vous devez poster votre code.
Il semble que vous voulez poser pour la fonction d'inversion. Vous pouvez demander qu'une question distincte au lieu de les ajouter à une question.
Je reçois un message d'erreur lorsque vous affichez le code dans la description
cliquez sur le bouton modifier c'est là que vous devez poster votre code.
Il semble que vous voulez poser pour la fonction d'inversion. Vous pouvez demander qu'une question distincte au lieu de les ajouter à une question.
OriginalL'auteur user1790201 | 2012-11-23
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur Jun HU
Juste pour le plaisir - la solution récursive de one-liner:
mmm, des cas de coin. il fixe, merci pour elle
en Python3, il échoue pour inuputs x >= 9. Pour corriger: changement de l'instruction return "" retour tobinr(x//2) + [x%2] si x > 1 sinon [x] "'
OriginalL'auteur Óscar López
je propose ceci:
il est probablement le moyen le plus rapide et il semble assez clair pour moi.
bin est trop lent lorsque la performance est importante.
acclamations
votre solution est bonne, mais la liste doit être inversé pour donner la bonne réponse. J'ai édité votre code.
x est la valeur décimale et s est le nombre de bits que vous souhaitez représenter avec – j'ai changé les noms de variable d'être le plus descriptif.
OriginalL'auteur user1811468
Cela va le faire. Pas de sens de roulement de votre propre fonction de si il y a un builtin.
La
bin()
fonction convertit une chaîne de caractères en binaire. Bande de la0b
et vous êtes fixés.bin
fonction.Je ne peux pas utiliser la fonction binaire pour cela, et non les importations sont autorisées, soit
Naturellement, vous ne pouvez pas être assuré que quelqu'un vous suivez les instructions si vous ne leur dites pas les instructions.
c'est dans le titre de la question.
Les gars, vous faites beaucoup de tracas en plus de cette réponse lorsqu'il y a un parfaitement viable répondre à trois pouces au-dessus. @johnthexiii, il n'y a pas de clients ici. Je vais quitter cette réponse ici dans le cas où une personne autre que le demandeur estime utile, ce qui je pense n'est pas improbable.
OriginalL'auteur Dietrich Epp
Vous pouvez tout d'abord utiliser la fonction format pour obtenir une chaîne binaire comme votre fonction actuelle. Pour l'e.g l'extrait de code suivant crée une chaîne binaire de 8 bits correspondant à l'entier 58.
Maintenant effectuer une itération de la chaîne à convertir chaque bit d'un entier à obtenir votre liste de bits codés comme des nombres entiers.
OriginalL'auteur theOne
Voici le code pour l'un que j'ai fait pour le collège.
Cliquez sur Ici pour une vidéo de youtube, de le code.!
https://www.youtube.com/watch?v=SGTZzJ5H-CE
OriginalL'auteur Derek MC
Rembourré avec de la longueur
Dans la plupart des cas, vous voulez que votre nombre binaire à une longueur spécifique. Par exemple, vous voulez 1 à 8 chiffres binaires [0,0,0,0,0,0,0,1]. J'utilise moi-même:
OriginalL'auteur Cameron Lowell Palmer
Pas vraiment le plus efficace, mais au moins, il fournit une simple conceptuel manière de les comprendre...
1) Plancher de diviser tous les nombres de deux à plusieurs reprises jusqu'à ce que vous atteindre 1
2) Aller dans l'ordre inverse, de créer des morceaux de ce tableau de nombres, si c'est même, d'ajouter un 0 si elle est impaire ajouter un 1.
Voici la traduction littérale de la mise en œuvre de l':
Voici une version de meilleure utilisation de la mémoire:
OriginalL'auteur ThinkBonobo
Vous pouvez utiliser numpy forfait et obtenez très rapide de la solution:
unpackbits gère les entrées de type uint8 seulement, mais vous pouvez toujours utiliser np.vue:
OriginalL'auteur bubble
Pas le pythonic façon...mais fonctionne toujours:
Exemple de comment l'utiliser:
OriginalL'auteur theQuestionMan
OriginalL'auteur Thomas Watson
La conversion de décimal à binaire est une question de comment vous allez utiliser l' % et //
OriginalL'auteur Abpkn
Les blocs de Code en Markdown doit être mis en retrait par quatre espaces. La meilleure façon de le faire que sur un Débordement de Pile est de sélectionner le code et appuyez sur Ctrl+K ou cliquez sur la
{}
bouton dans la barre d'outils editeur.OriginalL'auteur kai