Le code est principalement terminé, mais mon code imprime mal son impression comme 110, par opposition à 011. Le problème que vous devez inverser le "110" à "011"
3 Réponses :
Vous pouvez simplement utiliser Integer # TobinyString (INT) pour renvoyer le résultat en tant que chaîne binaire.
Je suis assez nouveau à Java, donc je ne sais pas comment faire ça: p
Mis à jour le message principal.
POST MISE À JOUR COMME IMPEDPOKE.
Vous pouvez imprimer directement chaque chiffre binaire sans le stocker dans binaireNum code>
Utilisez ensuite une chaîne comme suit:
int num = scan.nextInt(); String s = ""; while (num != 0) { int rem = num % 2; num /= 2; s = s + rem; // this concatenates the digit to the string in reverse order. // if you want it in normal order, do it -> s = rem + s; } System.out.println(s);
Ou si OP ne veut pas de chaînes, binairenum = (binairenum * 10) + rem code> ..?
@ashu pour des nombres binaires réguliers, oui. Mais cela ne montre pas le seuil de zéro s'il est imprimé à l'envers, il montre 11 pour 6 et non 011.
Aah oui! OFF par zéro i>: p
Le nombre maximum d'un entier peut prendre est 2147483647. Il s'agit que de 10 chiffres, ce qui signifie que le nombre de binaires maximum que vous pouvez avoir est de 1111111111, qui est 1023. Vous devez utiliser une chaîne plutôt que de stocker votre binaire si votre entrée sera supérieure à 1023
Votre code fonctionne correctement. Si vous mettez en 6, il imprime 110, ce qui est correct.