Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
/*****************************************************************************/ /*** 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
pour ce code
Hors ligne
Pages: 1