Sujet : Re: Le calcul de la racine carré... pour des nuls :)
De : om+news (at) *nospam* miakinen.net (Olivier Miakinen)
Groupes : fr.sci.mathsDate : 09. Nov 2024, 20:03:20
Autres entêtes
Organisation : There's no cabale
Message-ID : <vgoblo$1it3$1@cabale.usenet-fr.net>
References : 1 2 3 4 5 6 7 8 9 10 11
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4
Le 09/11/2024 14:30, Julien Arlandis a écrit :
Je reviens à JavaScript. Les indices de tableaux n'y sont *pas* des nombres
réels ! Même si les nombres entiers sont codés selon la norme IEEE 754 qui
peut *aussi* coder des nombres non entiers, seuls les entiers sont utilisés
comme indices de tableaux. Je crois même (mais c'est à vérifier) que seuls
les entiers positifs entre 0 et 2^32−1 sont autorisés comme index. Donc pas
3,14, ni −2, ni 2^42.
Pas sûr de ça, Javascript mélange les tableaux indexés et les tableaux
associatifs, ainsi que le montre cet exemple :
a = [5, 6, 12, 10] // => [5, 6, 12, 10]
a[3.14] = 66 // => [5, 6, 12, 10, 3.14: 66]
Oui, j'ai fait un raccourci en disant « seuls les entiers sont utilisés
comme indices de tableaux », car on peut avoir des « index » qui ne sont
pas des entiers. Mais même les tableaux associatifs sont limités à une
taille de 2^32−1 éléments car en interne ils sont indexés par un entier
sur 32 bits :
https://www.google.com/search?q=taille+max+d%27un+tableau+en+javascript</cit>
Les tableaux JavaScript sont basés sur zéro et utilisent des index 32 bits :
l'index du premier élément est 0 et l'index le plus élevé possible est
4294967294 (2^32 −2), pour une taille de tableau maximale de 4 294 967 295 éléments.
</cit.>
Les nombres non entiers, ou trop grands, sont transformés en chaînes de
caractères quand on tente de les utiliser comme index :
a = [5, 6, 12, 10] // => [5, 6, 12, 10]
a[3.14] = 66 // => [5, 6, 12, 10, '3.14': 66]
a[5000000000] = 42 // => [ 5, 6, 12, 10, '3.14': 66, '5000000000': 42 ]
a[4000000000] = 41 // => [ 5, 6, 12, 10, <3999999996 empty items>, 41,
// '3.14': 66, '5000000000': 42 ]
-- Olivier Miakinen