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 :

concatener plusieurs booléen en chaine hexa


Sujet :

JavaScript

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut concatener plusieurs booléen en chaine hexa
    bonjours,

    j'ai plusieurs variables (82) de type booléen

    je voudrais le concatener toutes mes variables et transformer le resultat en une chaine de caractère représentant la valeur HEXA

    ex :
    mes variables : 1,0,0,0,1,0,1,0
    => je les concatène, ce qui me donne la variabel (en binaire) : 1000 1010
    => ce qui donne en hexa 8A
    => je voudrais donc que mon resultat soit la chaine de caractère '8A'

    j'espère que vous avez compris ...

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    A priori, to_string(16)

    EDIT : appliqué à ta "concaténation" ...

    A+

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    c'est comme ça qu'il faut faire ?
    il n'y a pas de risque d'avoir un overflow ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    				A=1;
    				B=0;
    				C=0;
    				D=0;
     
    				E=1;
    				F=0;
    				G=1;
    				H=0;
     
    				RES=0;
    				RES = (A << 7) | (B << 6) | (C << 5) | (D << 4) | (E << 3) | (F << 2) | (G << 1) | (H << 0); 
    				alert(RES.toString(16));

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Su rle principe, c'est ça.
    Pour les overflow, y a des risques, effectivement ...
    J'ai pas assez de pratique dans le domaine

    A+

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    je viens de faire des test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var result = 0;
     
    for(var i = 0 ; i<7 ; i++)
    {
    	result |= 0 << (0+i*4);
    	result |= 1 << (1+i*4);
    	result |= 0 << (2+i*4);
    	result |= 1 << (3+i*4);
    }
     
    alert(result.toString(16));
    => on ne peut monter que jusqu'a 7 caractères (28bits)
    => donc a priori toutes les variables standards js sont codées en 32bits (je pense que le 8ème caractère ne fonctionne pas car je dois ecrire dans le bit de signe) : ce qui est a priori normale vu que les CPU sont en generale en 32bits.

    => y a pas moyen de les coder sur plus de bit ?

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    dieu a trouvé une solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    				var result = '';
     
    				for(var i = 0 ; i<100000 ; i++)
    				{
    					var temp = 0;
    					temp |= 1 << 3;
    					temp |= 0 << 2;
    					temp |= 1 << 1;
    					temp |= 0 << 0;
    					result += temp.toString(16)
    				}
     
    				alert(result);
    => mais il doit surrement y avoir une meilleur solutions (plus rapide) acr a chaque boucle il faut qu'il recherche l'adresse de fin de la chaine result...
    on doit bien pouvoir coder des variables sur plus de 32bits, non ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Concatener plusieurs valeurs champs en un seul
    Par legsfr dans le forum Access
    Réponses: 4
    Dernier message: 13/12/2006, 10h53
  2. Concaténer plusieurs fichier pdf.
    Par gege2061 dans le forum Linux
    Réponses: 7
    Dernier message: 28/10/2006, 13h14
  3. comment concatener plusieurs champs?
    Par polianita dans le forum Access
    Réponses: 1
    Dernier message: 07/07/2006, 16h46
  4. Supprimer les dernieres lignes et concatener plusieurs fichier
    Par filsdugrand dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 11/04/2006, 21h15
  5. [VB.NET] Convert chaine hexa -> int
    Par Tempotpo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/03/2005, 08h53

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