Powerbuilder pour les completement Geeks !

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 11-02-2010 08:35:33

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

[SOURCE] Déterminer la présence d'un bit dans un nombre

Code: pb

/*****************************************************************************/
/*** AUTEUR       :                                                        ***/
/*** MODIFICATION :                                                        ***/
/*** NOM FONCTION : uf_bit_actif                                           ***/
/*** OBJET        : CONTROLE SI LE BIT RECLAME EST PRESENT DANS LA VALEUR  ***/
/*** ARGUMENTS    : - al_valeur : LA VALEUR A CONTROLER                    ***/
/***                - al_bit : LA VALEUR DE BIT A CONTROLER                ***/
/*** RETOUR       : BOOLEAN                                                ***/
/*****************************************************************************/
/* EXEMPLE : uf_bit_actif(43, 4) = False ET uf_bit_actif(43, 2) = True     */
Boolean  lb_ret
Long    ll_log2, i, ll_valeur

If IsNull(al_valeur) or IsNull(al_bit) then
  lb_ret = False
Else
  ll_valeur = al_valeur
  /* CALCUL DU LOG BASE 2                                                 */
  ll_log2 = Truncate(LogTen(al_valeur) / LogTen(2), 0)
  /* BOUCLE SUR LES VALEURS DE BIT PRESENTS DANS al_valeur                */
  For i = ll_log2 To 0 Step -1
    If ll_valeur - 2^i >= 0 Then
      ll_valeur -= 2^i
      
      If al_bit = 2^i Then
        lb_ret = True
        Exit
      End If
    ElseIf ll_valeur = 0 Then
      lb_ret = False
      Exit
    End If
  Next
End If

Return lb_ret

Hors ligne

 

#2 11-02-2010 10:15:50

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [SOURCE] Déterminer la présence d'un bit dans un nombre

pour ce code


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22