Dans un code je travaille sur je dois prendre soin de dix paramètres indépendants qui peuvent prendre l'une des deux valeurs (0 ou 1). Cela crée 2^10 conditions distinctes. Certaines des conditions ne se produisent jamais et peuvent être omises, mais celles qui se produisent sont encore beaucoup et faire un switch
pour traiter tous les cas est fou. Je veux utiliser 10 if
instructions au lieu d'un énorme switch
. Pour cela, je sais que je devrais utiliser des bits de drapeau, ou plutôt des octets de drapeau comme la langue est javascript et il est plus facile de travailler avec une chaîne de 10 octets avec pour représenter un binaire de 10 bits.calcul et de détection de bits Drapeau
Maintenant, mon problème est, je ne sais pas comment implémenter cela. Je l'ai vu utilisé dans API
s où de multiples options sélectionnables sont exposés avec des nombres 1, 2, 4, 8, ..., n^(n-1) qui sont équivalents décimaux de 1, 10, 100, 1000, etc. en binaire Donc, si nous faisons un appel comme bar = foo(7)
, la barre sera un objet avec toutes les options que les trois drapeaux les plus à droite permettent.
Je peux convertir le nombre décimal en binaire et dans chaque if
contrôle d'instruction pour voir si le chiffre correspondant est défini ou non. Mais je me demande, est-il un moyen de déterminer le n-th
chiffre d'un nombre décimal est égal à zéro ou un sous forme binaire, sans faire réellement la conversion?
WOW! Très rapide! Je voulais accepter votre réponse tout de suite, mais apparemment je devrais attendre au moins 9 minutes. Merci vraiment. –
+1 tapait quelque chose de similaire mais vous étiez plus rapide;) –