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

Caml Discussion :

[Caml Light] Nombre de bits


Sujet :

Caml

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 6
    Points
    6
    Par défaut [Caml Light] Nombre de bits
    Bonjour,

    J'utilise le type big_int, existe-t-il un moyen "direct" d'en connaitre la longueur en binaire ?
    Par direct je veux dire en évitant tout algorithme de décomposition en base 2 (par divisions successives par 2).

    Merci d'avance.

  2. #2
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Cf le fichier big_int.mli

    Je crois que ce que tu cherches est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    val num_digits_big_int : big_int -> int
            (** Return the number of machine words used to store the
               given big integer.  *)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    J'avais effectivement vu cette fonction, mais apparement ce n'est pas cela.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    num_digits_big_int (big_int_of_int 7);;
    me renvoie 1 alors que l'on devrait trouver 3. Et d'ailleurs elle renvoie presque toujours 1. Je ne sais pas ce que fait cette fonction ...

  4. #4
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Oui, parce que les big_int sont probablement stockés dans un tableau d'int. La fonction te renvoie, je crois, le nombre d'int (en mémoire, donc sans le bit du GC de Caml) utilisés.

    Chez moi :
    4294967295 renvoie 1
    4294967296 renvoie 2

    C'est la seule valeur directe que tu peux avoir, d'après l'interface fournie.

    Pour connaître le nombre de chiffres en base 2, tu dois donc le calculer toi-même. Pour réduire la complexité (ce qui n'a un intérêt que si les nombres manipulés sont extrèmement grands), tu peux te baser sur l'information donnée (fais attention : la valeur renvoyée dépend de l'architecture).

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Arf, d'accord, c'est bien dommage ...
    En réalité je dois travailler avec des approximations entieres de log en base 2 (afin de gagner en rapidité, car les nombres manipulés sont grands). Et c'est pour cette raison que je voulais connaitre le nombre de bits.
    Malheureusement, il semblerait que calculer un tel log par la méthode des divisions successives par 2 ralentisse encore plus l'execution, contrairement à ce que l'on voulait ... :/

    Nilss.

Discussions similaires

  1. [caml-light] Lire un fichier bit a bit
    Par m312 dans le forum Caml
    Réponses: 4
    Dernier message: 23/08/2007, 19h02
  2. Réponses: 3
    Dernier message: 07/12/2006, 10h15
  3. Nombre de bits à 1 dans un unsigned / index du 1er bit à 1
    Par Erickann dans le forum Assembleur
    Réponses: 2
    Dernier message: 20/11/2005, 22h51
  4. [Processeurs] A propos du nombre de bits ...
    Par Évariste Galois dans le forum Composants
    Réponses: 7
    Dernier message: 22/08/2005, 08h42
  5. [Débutant][RISC]Compter le nombre de bit à 1 dans un octet ?
    Par Pill_S dans le forum Autres architectures
    Réponses: 7
    Dernier message: 23/12/2004, 23h24

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