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

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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Points
    1 213
    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...
    Nemerle, mathématicopilier de bars, membre du triumvirat du CSTM, 3/4 centre

  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 : 40
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    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 ?
    Jérôme Lambert
    Développeur, Architecte, Rédacteur & Fan technologies Microsoft
    Ma boite informatique | Mon profil LinkedIn

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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Points
    1 213
    Par défaut
    merci, ca je savais, mais je me demandait s'il n'y avait pas une instruction de directe sans boucle...
    Nemerle, mathématicopilier de bars, membre du triumvirat du CSTM, 3/4 centre

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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Points
    1 213
    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é!!
    Nemerle, mathématicopilier de bars, membre du triumvirat du CSTM, 3/4 centre

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

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

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Citation Envoyé par Nemerle
    c'est gagné!!
    Mehdi Feki : Modérateur .Net

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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Points
    1 213
    Par défaut
    Merci à tous!
    Nemerle, mathématicopilier de bars, membre du triumvirat du CSTM, 3/4 centre

+ 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