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

Framework .NET Discussion :

operateurs biwise et ulong


Sujet :

Framework .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 89
    Par défaut operateurs biwise et ulong
    bonjour,

    je viens chercher un éclaircissement sur une erreur qui survient lors de manipulation de bit sur un ulong ( donc non signé )

    je voulais utiliser la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       Public Shared Function find_bit_poids_faible(ByVal rufus As ULong) As ULong
     
     
             Return CULng(rufus And (-(rufus)))
     
     
            End Function
    elle me donne un jolie depassement de capacité pour des valeurs superieur a la valeur 60 ( ou 61 je c plus du coup )

    que l on peut obtenir de la maniere suivante par exemple :

    ulng(1) << 60


    donc ce dépassement arithmétique, m oblige a faire la fonction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      Public Shared Function find_bit_poids_faible(ByVal rufus As ULong) As ULong
                            Return ((rufus And (rufus - CULng(1)) Xor rufus))
            End Function

    ma question : pourquoi ??????????
    le "-" alors que c un ulong ? ( conversion implicite en long ..???? )

    question subsidiaire, je veux limiter au maximum les operations,

    premiere fonction un "and"
    seconde un "and" "xor" et un " -"

    une astuce pour que la première fonctionne ( la valeur finale ne dépasse jamais la valeur max d un ulong ...)


    d avance merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Je sais pas trop pourquoi tu te lances dans des trucs si compliqués... pour récupérer le bit de poids faible, il suffit de faire ça :

    (j'adore le nom de ta variable )

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 89
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Je sais pas trop pourquoi tu te lances dans des trucs si compliqués... pour récupérer le bit de poids faible, il suffit de faire ça :

    (j'adore le nom de ta variable )
    pour la variable, manque d inspiration ...

    sinon, ne retourne pas le bit de poids faible test a appuis ...

  4. #4
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Citation Envoyé par oliverell62 Voir le message
    pour la variable, manque d inspiration ...

    sinon, ne retourne pas le bit de poids faible test a appuis ...
    J'veux bien voir le test car ca me parait bizarre la quand même

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par oliverell62 Voir le message
    sinon, ne retourne pas le bit de poids faible test a appuis ...
    Ben on a pas du faire les mêmes tests... ou alors on a pas la même définition du bit de poids faible.

    Sinon, encore plus simple :

    (le bit de poids faible est 0 pour les nombres pairs, 1 pour les nombres impairs)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 89
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Ben on a pas du faire les mêmes tests... ou alors on a pas la même définition du bit de poids faible.

    Sinon, encore plus simple :

    (le bit de poids faible est 0 pour les nombres pairs, 1 pour les nombres impairs)
    nous n avons effectivement pas la meme definition
    http://fr.wikipedia.org/wiki/Bit_de_poids_faible

    en fait je veux recuperer le 1 le plus bas possible ...


    genre
    000011110001000000011000000010000
    donnera :
    000000000000000000000000000010000

    j avais cru comprendre que c 'était ca le bit poids faible
    toutes mes excuses ...

  7. #7
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Function Func(figure As ULong) As ULong
    	Dim i As Integer = 0
    	While figure Mod 2 Is 0
    		figure = figure >> 1
    		i += 1
    	End While
    	Return Math.Pow(2, i)
    End Function

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

Discussions similaires

  1. redirection operateur flue >> appel system
    Par philippe V dans le forum MFC
    Réponses: 9
    Dernier message: 16/03/2005, 18h01
  2. PHP SQL =>erreur de syntaxe (operateur absent)
    Par snipes dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 14h09
  3. operateur de condition
    Par Jean-Matt dans le forum Langage SQL
    Réponses: 4
    Dernier message: 01/12/2004, 15h56
  4. [langage] opérateur booleen
    Par louisis dans le forum Langage
    Réponses: 4
    Dernier message: 30/06/2004, 16h12
  5. [langage] l'operateur tr///
    Par March' dans le forum Langage
    Réponses: 4
    Dernier message: 03/03/2003, 21h57

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