2010-05-10 4 views
15

Ich arbeite in Javascript nur mit ganzzahligen Zahlen (hauptsächlich Hinzufügen von Zahlen und Verschieben von ihnen). Ich frage mich, wie groß sie sein können, ohne irgendwelche Teile zu verlieren.Anzahl der Bits in Javascript-Nummern

Zum Beispiel, wie groß X kann so sein, dass 1 << X wird 2^X darstellen?

+2

Duplizieren: http://stackoverflow.com/questions/307179/what-isjavascripts-max-int-whats-the-highest-integer-value-a-number-can-go-to – Dolph

Antwort

21

Alle Zahlen in JavaScript sind tatsächlich IEEE-754-konforme Fließkomma-Doubles. Diese haben eine 53-Bit-Mantisse, was bedeuten sollte, dass jeder ganzzahlige Wert mit einer Größenordnung von ungefähr 9 Billiarden oder weniger - genauer gesagt, 9.007.199.254.740.991 - genau dargestellt wird.

+2

daher x ist 53 ?? –

+1

@Revanth: Fast! Die maximale ganze Zahl, die genau dargestellt werden kann, ist "(2^53) -1" oder "9.007.199.254.740.991". In der Praxis wird "2^53" als "9,007,199,254,740,992" bewertet, aber dies ist theoretisch keine genaue Darstellung, weil 1 Bit Genauigkeit fehlt, was bedeutet, dass "2^53" nicht von "(2^53) zu unterscheiden ist. + 1'. – LukeH

4

Alle Zahlen in JavaScript sind Gleitkommazahlen mit 64 Bit (doppelter Genauigkeit).

Here ist eine Beschreibung des Formats und welche Werte können und können nicht mit ihm dargestellt werden.

+1

daher X ist 64 ?? –

+1

Irgendwie brauchte ich ewig um zu verstehen, warum ich "53 Bits Genauigkeit" sah, aber nur 52 Bits Speicherplatz für den Signifikanten. Dieser Link beantwortete die Frage, ein impliziter Wert von 1. – robyoder

Verwandte Themen