Czytam książkę Douglasa Crockforda za - Javascript dobre części - i mówi:Jak jest mały przepełnienia całkowitą unikać JavaScript
JavaScript ma jeden typ numeru. Wewnętrznie jest reprezentowany jako 64-bitowy zmiennoprzecinkowy, taki sam jak podwójny Java. W przeciwieństwie do większości innych języków programowania, nie ma oddzielnego typu integer, więc 1 i 1.0 mają tę samą wartość. Jest to istotna wygoda, ponieważ całkowicie unika się problemów z przepełnieniem w krótkich liczbach całkowitych ...
Nie jestem zbyt zaznajomiony z innymi językami, więc chciałbym trochę wyjaśnienia. Rozumiem, dlaczego 64-bitowy pomaga, ale jego stwierdzenie zdaje się dotyczyć braku pływaków i podwójnych.
Jaki byłby (prawdopodobnie pseudo-kod) przykład krótkiej przepełnienia liczby całkowitej, która nie wystąpi w JS?
całkowitymi w JS może być z - (2^53 - 1) do (2^53 - 1) .. skutecznie podpisany 54bit integer (ale nie całkiem, ale to nie ma znaczenia) ... krótkie liczby całkowite to 16bit ... 54 bitów jest większe niż 16 bitów ... więc nie ma problemów z przepełnieniem –
przykład dla krótkich podpisów ... 32767 + 1 to 32768 w JS, w innych językach to -32768 –
@JaromandaX ... powinno to być '- (2^53 + 1)'? Nie wiem ... po prostu ciekawy. – rnevius