500 Stimmen

Wie konvertiere ich in JavaScript eine Ganzzahl in eine Binärzahl?

Ich würde gerne ganze Zahlen, positiv oder negativ, in binärer Form sehen.

Eher wie この質問 sondern für JavaScript.

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).

-2voto

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();

3 Stimmen

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.

-3voto

Brian Punkte 5

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.
        */

1 Stimmen

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.

1 Stimmen

@AdrianW Ich schlage vor, dies herunterzustimmen. Wie ich sehe, haben Sie das nicht getan. Was ist nötig, damit Sie eine Antwort herabstufen?!

CodeJaeger.com

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.

Powered by:

X