Ich würde gerne ganze Zahlen, positiv oder negativ, in binärer Form sehen.
Eher wie この質問 sondern für JavaScript.
Ich würde gerne ganze Zahlen, positiv oder negativ, in binärer Form sehen.
Eher wie この質問 sondern für JavaScript.
Dies ist mein 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();
Das mag für ein Informatikstudium nützlich sein, um zu sehen, wie man es manuell macht, damit man es sich selbst beibringen kann, aber das ist nicht meine Frage! Wenn man schon das Rad neu erfinden muss, um es manuell zu machen, dann sollte man wenigstens den Vorteil der Effizienzsteigerung oder einen Vorteil wie die Vergrößerung der zu verarbeitenden Werte haben. Ich sehe keine Diskussion von Ihnen, in der Sie einen solchen Vorteil anführen.
Das ist die Lösung. Es ist in der Tat ganz einfach
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.
*/
Diese Lösung wurde bereits mehrfach vorgeschlagen und funktioniert, wie von OP bereits am 30. März '12 um 9:01 Uhr kommentiert, nicht für negative Zahlen.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
3 Stimmen
Die a.toString(2)-Beispiele scheinen bei -1 nicht zu funktionieren
1 Stimmen
Es ist auch möglich, von binär nach dezimal zu konvertieren: stackoverflow.com/questions/11103487/
0 Stimmen
Und wenn ich "binär" sage, ist das vielleicht etwas zweideutig. Ich meine die interne Bitstring-Darstellung, die das 2er-Komplement ist, d.h. positive Zahlen werden zur Basis 2 und mit einer führenden 0 geschrieben (und negative Zahlen werden nicht mit einem Minuszeichen oder mit einer Vorzeichen-Darstellung geschrieben, sondern als Funktion ihres positiven Äquivalents).
0 Stimmen
Diese Frage ist in höchstem Maße irreführend. "Vielleicht ein bisschen zweideutig" ist zu milde ausgedrückt. Warum taucht das 2er-Komplement weder im Titel noch im Text der Frage auf, wenn es das ist, was Sie eigentlich wollen? Genauso wenig wie ein mehr oder weniger gleichwertiger Ausdruck wie "interne Bit-String-Darstellung". Aus Ihrer Antwort und Ihren Kommentaren zu anderen Antworten schließe ich, dass es Ihnen nicht um das Binärsystem geht, sondern um das 2s-Komplement. Die Fragen, die Sie kritisieren, sehen für mich so aus, als ob sie auf genau Ihre Frage... Es sind nicht die Antworten, die schlecht sind - Ihre Frage ist es.
0 Stimmen
@dingalapadum Nun, bedenken Sie dies. Wie viele verschiedene Möglichkeiten gibt es (in der Praxis), positive und negative ganze Zahlen darzustellen? Es gibt die Vorzeichen-Magnituden-Methode, es gibt das 1er-Komplement und das 2er-Komplement. Und dann gibt es noch "irgendeine benutzerdefinierte Methode". Wenn jemand einen Weg aufzeigt, dann sollte er den Namen der Darstellung angeben. Wenn jemand "-1101" schreibt, ist das nicht binär, oder? Denn ein Minuszeichen ist keine binäre Ziffer. Wenn jemand sagt, dass 1 eine "1" und -1 eine "11111" ist, wie unterscheidet man dann mechanisch zwischen diesen beiden. Wie lautet der Name dieses Systems.
0 Stimmen
Wenn wir über die Darstellung von Zahlen in "x-ary" sprechen, meinen wir, dass wir x Ziffern verwenden, um die Größenordnung der Nummer. Das Vorzeichen der Zahl ist keine Ziffer und wird nicht für den Betrag verwendet. Das Vorzeichen ändert auch nicht den Betrag der Zahl. Ihre Frage bezieht sich auf die Kodierung von Zahlen in einer binären Zeichenfolge. In Ihrem Kommentar sagen Sie bereits, dass Sie sich für das 2er-Komplement interessieren. Warum schreiben Sie es also nicht in den Titel oder in die Frage selbst, um Missverständnisse zu vermeiden, diese Diskussion zu vermeiden und die Frage insgesamt klarer und qualitativ hochwertiger zu gestalten?
0 Stimmen
@dingalapadum Sie spucken nur weitere Ablenkungsmanöver aus, z.B. schreiben Sie mir als eine Art Argument, dass "1011 als Binärzahl verstanden werden kann" (Als ob das eine Neuigkeit sein soll oder ich etwas anderes behauptet hätte).
0 Stimmen
Ich habe "-1011" und nicht "1011" geschrieben. Negative Zahlen scheinen dein ganzes Problem mit den "falschen" Antworten zu sein, richtig? Wie auch immer. IMO ist die Frage in ihrer jetzigen Form von sehr schlechter Qualität und es wäre wirklich einfach, sie zu verbessern. Ich habe nur versucht zu erklären, warum ich so denke. Die "falschen" Antworten und Ihre eigenen Kommentare bestätigen dies. OTOH Sie haben immer noch nicht argumentiert, warum es besser ist, das 2er-Komplement nicht im Titel oder im Hauptteil der Frage zu erwähnen. Nach der Frage zu fragen, "wie man in Binärzahlen umwandelt", aber tatsächlich das 2er-Komplement als Antwort zu verlangen, ist (mit Ihren eigenen Worten) zweideutig . Warum wird die Frage dann nicht einfach präzisiert?
0 Stimmen
Wir wollen diese Diskussion im Chat fortsetzen .
0 Stimmen
Was ist eigentlich eine negative Null in binärer Form in Javascript? Es kann nur im 1er-Komplement sein? Es ist in der Regel als alle binären 1en dargestellt. - > 111111111.... nicht sicher, wie viele. Diese Referenz hat 32bit Zahl binäre Darstellung von -0 als 1 gefolgt von 31 Nullen. - de.wikipedia.org/wiki/Signed_zero
0 Stimmen
@JoePythonKing Was meinen Sie mit "Es kann nur im 1er-Komplement sein?" Du kommst aus Großbritannien, also kannst du vielleicht besser auf Englisch schreiben. Du kannst -1 im 1er-Komplement oder -1 im 2er-Komplement nachschlagen. Computer neigen dazu, das 2er-Komplement gegenüber dem 1er-Komplement zu bevorzugen, aber es ist kein Rätsel, wie man vom einen zum anderen kommt. Es gibt noch einige andere Darstellungen. Wie viele 1en bei negativen Zahlen, z. B. im 2er-Komplement, erforderlich sind, spielt keine Rolle, und wahrscheinlich wäre es auch für das 1er-Komplement egal. Es kommt darauf an, wie viele Bits Sie zum Speichern der Zahl haben!