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

VB.NET Discussion :

[VB.net] bit de plus haut poids


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Par défaut [VB.net] bit de plus haut poids
    Désolé, j'ai oublié comment ça marche...

    J'ai besoin de la plus grande puissance de 2 juste inférieure à un entier n. Pour cela, j'ai pensé au plus haut bit (sans prendre en compte le signe) à 1 dans l'écriture binaire de n.

    Mais je ne sais plus comment on fait...

  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    Voila déjà la plus grande puissance d'un entier sur 4 octets :

    Tu n'as plus qu'à faire une boucle qui commence à la valeur indiquée au dessus et qui est divisée par 2 à chaque tour de boucle et celà tant que ta puissance de 2 obtenue est supérieure ou égale à 2. Reste plus qu'à mettre la condition juste avant la division: Est-ce que la puissance de 2 courante est inférieure à N ?

  3. #3
    Membre Expert Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Par défaut
    merci, ca je savais, mais je me demandait s'il n'y avait pas une instruction de directe sans boucle...

  4. #4
    Membre Expert Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Par défaut
    A y est, j'ai retrouvé!!!! Si |=ou et >>=décalage à droite, la puissance de 2 directement supérieure à x s'obtient par:

    x=x-1
    x=x|(x>>16)
    x=x|(x>>8)
    x=x|(x>>4)
    x=x|(x>>2)
    x=x|(x>>1)
    x=x+1
    on soustrait 1 à x dans le cas où x est une puissance de 2.

    les ou avec décalage successif permettent de remplir à 1 tous les bits à droite du plus haut bit à 1 !!

    et comme 1+2+4+8..+2^n = 2^(n+1)-1,

    c'est gagné!!

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 413
    Par défaut
    Bien vu

  6. #6
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Citation Envoyé par Nemerle
    c'est gagné!!

  7. #7
    Membre Expert Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Par défaut
    Merci à tous!

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

Discussions similaires

  1. [.NET 3.0] Plus de projets "templates" dans VS2005
    Par benoitdelmelle dans le forum Framework .NET
    Réponses: 1
    Dernier message: 05/05/2007, 12h09
  2. Réponses: 2
    Dernier message: 21/04/2007, 16h13
  3. [.net] keypress marche plus après click
    Par noinneh dans le forum MFC
    Réponses: 1
    Dernier message: 24/02/2006, 16h45
  4. Menu en position:fixed plus haut que la fenêtre
    Par Maximil ian dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 15/12/2004, 23h14
  5. Requete : Rechercher l'id le plus haut (max)
    Par djsbens dans le forum Langage SQL
    Réponses: 5
    Dernier message: 02/07/2004, 13h35

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