IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Opérations binaires 64 bits


Sujet :

JavaScript

  1. #1
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut Opérations binaires 64 bits
    Salut à tous !

    Voilà une petite chose que j'ai constatée, et qui me tracasse.
    Quand on manipule un nombre JavaScript, il est stocké sous forme d'un flottant, même si on ne voit pas toujours la virgule. On peut voir la perte de précision propre au type flottant dans cet exemple :
    Code console : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> 0x80000000000000000
    147573952589676410000
    il ne devrait pas y a voir autant de zéros à la fin.

    Si on utilise un opérateur binaire, mon nombre est converti en int signé sur 32 bits.
    Code console : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> 0x80000000
    2147483648
    >>> 0x80000000 | 1
    -2147483647
    Là on peut voir le débordement de signe.

    Et quand on utilise des nombres qui dépassent 32 bits, ils sont simplement tronqués.
    Code console : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> 0xabc
    2748
    >>> 0xabc | 1
    2749
    >>> 0x100000abc
    4294970044
    >>> 0x100000abc | 1
    2749

    Pensez-vous qu'il y a un moyen simple de faire des opérations binaires 64 bits en JavaScript ? J'ai essayé, et j'ai pas l'impression que ça soit possible sans passer par de la grosse bidouille… Il y a bien les ArrayBuffer qui simplifient les choses, mais ça reste laborieux

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Les nombres en Javascript sont tous des flottants codés sur 64 bits. Dans 0x80000000000000000 il y a 17 caractères héxadécimaux, soit 68 bits. Donc déjà je ne vois pas comment on pourrait avoir une précision totale.

    La gestion des grands nombres a toujours été un peu particulière en Javascript. Un début de réponse ici : http://www.hunlock.com/blogs/The_Com...mber_Reference

  3. #3
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Ah oui effectivement j'ai fait une bourde

    Merci pour cette référence, je vais l'éplucher en détail !

Discussions similaires

  1. Opérations binaires ASP
    Par Trutinette dans le forum ASP
    Réponses: 5
    Dernier message: 21/03/2006, 12h46
  2. Opérations binaires, équivalent du >> et du <<
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 18/12/2005, 22h28
  3. opérations binaires (shift)
    Par jacquesberger dans le forum Langage
    Réponses: 1
    Dernier message: 26/07/2005, 22h23
  4. Remplir un fichier binaire de BITS !!!!
    Par ben13 dans le forum C
    Réponses: 98
    Dernier message: 08/01/2005, 19h38
  5. opérations sur les bits d'un byte
    Par petitours dans le forum C++Builder
    Réponses: 4
    Dernier message: 10/02/2004, 20h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo