J'aimerais voir les nombres entiers, positifs ou négatifs, en binaire.
Plutôt comme cette question mais pour JavaScript.
J'aimerais voir les nombres entiers, positifs ou négatifs, en binaire.
Plutôt comme cette question mais pour JavaScript.
Voici mon code :
var x = prompt("enter number", "7");
var i = 0;
var binaryvar = " ";
function add(n) {
if (n == 0) {
binaryvar = "0" + binaryvar;
}
else {
binaryvar = "1" + binaryvar;
}
}
function binary() {
while (i < 1) {
if (x == 1) {
add(1);
document.write(binaryvar);
break;
}
else {
if (x % 2 == 0) {
x = x / 2;
add(0);
}
else {
x = (x - 1) / 2;
add(1);
}
}
}
}
binary();
Voici la solution . C'est très simple en fait
function binaries(num1){
var str = num1.toString(2)
return(console.log('The binary form of ' + num1 + ' is: ' + str))
}
binaries(3
)
/*
According to MDN, Number.prototype.toString() overrides
Object.prototype.toString() with the useful distinction that you can
pass in a single integer argument. This argument is an optional radix,
numbers 2 to 36 allowed.So in the example above, we’re passing in 2 to
get a string representation of the binary for the base 10 number 100,
i.e. 1100100.
*/
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
3 votes
Les exemples a.toString(2) ne semblent pas fonctionner pour -1
1 votes
Il est également possible de convertir les données binaires en données décimales : stackoverflow.com/questions/11103487/
0 votes
Et quand j'ai dit "en binaire", c'est peut-être un peu ambigu. Je parle de la représentation interne de la chaîne de bits, qui est le complément à 2, de sorte que les nombres positifs seraient en base 2, avec un 0 en tête (et les nombres négatifs ne seraient pas écrits avec un symbole moins ou avec une représentation de la magnitude du signe, mais comme une fonction de leur équivalent positif).
0 votes
-1. Cette question est incroyablement trompeuse. "Peut-être un peu ambiguë" est un euphémisme. Pourquoi le complément 2s n'apparaît-il ni dans le titre ni dans le corps de la question, si c'est ce que vous voulez en fait ? Il en va de même pour une expression plus ou moins équivalente telle que "internal bit-string-representation". D'après votre réponse et vos commentaires sur d'autres réponses, j'en conclus que vous ne vous intéressez pas au binaire mais plutôt au complément à 2s. Les questions que vous critiquez me semblent répondre aux questions suivantes exactement votre question... Ce ne sont pas les réponses qui sont mauvaises, c'est votre question qui l'est.
0 votes
@dingalapadum Réfléchissez-y. De combien de façons différentes (en pratique) les ordinateurs représentent-ils les entiers positifs et négatifs ? Il y a la méthode de la magnitude du signe, le complément à 1s et le complément à 2s. Et il y a "une méthode personnalisée". Si quelqu'un veut montrer une méthode, il doit indiquer le nom de la représentation. Si quelqu'un écrit "-1101", ce n'est pas binaire. Car le signe moins n'est pas un chiffre binaire. Si quelqu'un dit que 1 est "1" et que -1 est "11111", quelle est la façon mécanique de les distinguer ? Quel est le nom de ce système ?
0 votes
Lorsque l'on parle de représentation des nombres en "x-aire", on veut dire que l'on utilise x chiffres pour représenter le ampleur du numéro. Le signe du nombre n'est pas un chiffre et n'est pas utilisé pour la magnitude. Le signe ne change pas non plus la magnitude du nombre. Votre question porte sur la manière d'encoder les nombres dans une chaîne binaire. Dans le commentaire, vous dites déjà que vous vous intéressez au complément à 2. Alors, pourquoi ne pas l'indiquer dans le titre ou dans la question elle-même, afin d'éviter d'induire les gens en erreur, d'éviter cette discussion, de rendre la question plus claire et de meilleure qualité dans l'ensemble ?
0 votes
@dingalapadum Vous ne faites que lancer d'autres faux-fuyants, par exemple, vous écrivez, comme une sorte d'argument pour moi, que "1011 peut être compris comme un nombre binaire" (comme si cela était censé être une nouvelle ou que j'avais suggéré le contraire).
0 votes
J'ai écrit "-1011" et non "1011". Les nombres négatifs semblent être votre problème avec les "mauvaises" réponses, n'est-ce pas ? Quoi qu'il en soit. L'IMO est une question de très mauvaise qualité en l'état et il serait très simple de l'améliorer. J'essayais juste d'expliquer pourquoi je pense cela. Les "mauvaises" réponses et vos propres commentaires le confirment. Par ailleurs, vous n'avez toujours pas expliqué pourquoi il est préférable de ne pas mentionner le complément à 2 dans le titre ou le corps de la question. Demander "comment convertir en binaire" mais exiger en fait le complément à 2s comme réponse est (selon vos propres termes) ambiguë . Pourquoi ne pas préciser la question ?
0 votes
Laissez-nous poursuivre cette discussion dans le chat .
0 votes
Qu'est-ce que le zéro négatif en binaire en javascript ? Il ne peut être qu'en complément à 1 ? Il est généralement représenté par tous les 1 binaires. - > 111111111.... sans savoir combien. Cette référence présente la représentation binaire du nombre 32 bits de -0 sous la forme d'un 1 suivi de 31 zéros. - fr.wikipedia.org/wiki/Signed_zero
0 votes
@JoePythonKing Que voulez-vous dire par " Il ne peut être qu'en complément à 1 ? " Vous êtes du Royaume-Uni, alors peut-être pouvez-vous mieux écrire en anglais. Vous pouvez chercher -1 en complément à 1s ou -1 en complément à 2s. Les ordinateurs ont tendance à utiliser le complément à 2s plutôt que le complément à 1s, mais le passage de l'un à l'autre n'est pas un mystère. Il existe d'autres représentations. En ce qui concerne le nombre de 1 pour les nombres négatifs, par exemple en complément à 2, cela n'a pas d'importance et n'en aurait probablement pas non plus pour le complément à 1. Cela dépend du nombre de bits dont vous disposez pour stocker le nombre !