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 :

Affection de bits dans une variable JS


Sujet :

JavaScript

  1. #1
    Membre chevronn�
    Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2008
    Messages
    504
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 504
    Par d�faut Affection de bits dans une variable JS
    Bonjour,

    Voil�, afin d'optimiser un script JS, je souhaite convertir 4 variables en un entier �crivant ce dernier bit par bit.

    Concr�tement, j'ai 4 test a effectuer. Chacune des valeurs de retour de ces 4 test doit correspondre � un bit dans la variable que je souhaite affecter (qu'on appelera "resultat").

    admettons que "resultat" soit initialis� � 0, que l'on peut �crire en binaire 0000 (je fait abstraction des 28 0 de gauches).

    les 4 test sont des comparaison num�riques simples entre les variables a, b c et d et une valeur de reference X.

    Je veux que "resultat" contienne en binaire :
    (a > X)(b > X)(c > X)(d > X).

    De cette fa�on, si a et c sont sup�rieurs � X, "resultat" s'�crira en binaire :
    1010
    donc resultat = 10 en d�cimal.

    La question est comment �crire �a en JS ? j'ai regard� du cot�s des op�rateur de d�calage de bit, mais je ne voient pas comment ils pourraient m'aider...

    Pour ceux qui se demanderait quelle est l'int�r�t de faire �a, c'est pour pouvoir ensuite taper directement dans un tableau de fonctions index� par tous les cas de figure possible de mon test.

    En vous remerciant par avance.

  2. #2
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    var M=(a > X)?1:0;
    var C=(b > X)?1:0;
    var D=(c > X)?1:0;
    var U=(d > X)?1:0;
    var resultat=M*1000+C*100+D*10+U
    apr�s �a d�pend si tu veux du string ou de l'integer mais si M=0 ...
    sinon sur le principe du chmod avec les puissances de 2
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  3. #3
    Membre chevronn�
    Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2008
    Messages
    504
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 504
    Par d�faut
    Arf, je me suis mal fait comprendre (en plus, je r�alise que j'ai mis "affection" au lieu de "affectation" dans mon titrte)...

    Je ne veux pas que resultat contienne la valeur binaire affich�e avec des caract�res d�cimaux, mais bien que resultat corresponde a une valeur comprise entre 0 et 15 en d�cimal, ce qui correspond � des valeurs comprises entre 0000 et 1111 en binaire...

    d'o� l'exemple de ce que je cherche a obtenir :
    Je veux que "resultat" contienne en binaire :
    (a > X)(b > X)(c > X)(d > X).
    De cette fa�on, si a et c sont sup�rieurs � X, "resultat" s'�crira en binaire :
    1010
    donc resultat = 10 en d�cimal.
    Mais merci quand m�me pour la tentative de r�ponse ^^

  4. #4
    Membre chevronn�
    Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2008
    Messages
    504
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 504
    Par d�faut
    Remarque, ta r�ponse m'inspire un peu :p

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    resultat = (d>X?1:0)+(c>X?2:0)+(b>X?4:0)+(a>X8?8:0);
    Si y'a plus �l�gant, je suis preneur, sinon je cocherai r�solu...

  5. #5
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    arf d�sol� j'avais pris le probl�me � l'envers
    A la limite c'est plus simple dans ce sens l�
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <script type='text/javascript'>
    Array.prototype.Flength=function(taille){
              tempFormat=this
    			while (tempFormat.length<4){tempFormat.unshift('0')}
    			return tempFormat;
    			}
     
    a=20
    b=10
    c=60
    d=100
    X=200
     
    var result=0
    result+=((a > X)?Math.pow(2,0):0)+((b > X)?Math.pow(2,1):0)+(result+=(c > X)?Math.pow(2,2):0)+((d > X)?Math.pow(2,3):0);
    alert(result)
    var binresult=result.toString(2).split('').Flength(4).join('')
    alert(binresult)
     
     
    </script>
    peut �tre un poil plus �l�gant que ta solution (en tout cas au niveau de la lisibilit� du code avec les puissances de 2
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    1 060
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 1 060
    Par d�faut
    Bonjour,

    Code trouv� sur le net :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
          function bindec (binary_string) 
          {
          // http://kevin.vanzonneveld.net
          // +   original by: Philippe Baumann
          // *     example 1: bindec('110011');
          // *     returns 1: 51
          // *     example 2: bindec('000110011');
          // *     returns 2: 51
          // *     example 3: bindec('111');
          // *     returns 3: 7
     
          binary_string = (binary_string+'').replace(/[^01]/gi, '');
          return parseInt(binary_string, 2);
          }
    Ici :
    http://kevin.vanzonneveld.net/techbl...r_phps_bindec/

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [MySQL] Affecter 2 zones dans une variable
    Par Judgelolo dans le forum PHP & Base de donn�es
    R�ponses: 1
    Dernier message: 15/07/2012, 04h16
  2. affectation d'un nom de classeur ouvert dans une variable
    Par nolive915 dans le forum Macros et VBA Excel
    R�ponses: 3
    Dernier message: 29/09/2006, 10h55
  3. R�ponses: 3
    Dernier message: 06/09/2006, 09h06
  4. Affecter valeur d'un champ dans une variable
    Par Sly2k dans le forum Access
    R�ponses: 3
    Dernier message: 17/08/2006, 09h43
  5. R�ponses: 2
    Dernier message: 17/08/2005, 14h40

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