C'est le code que je vais utiliser pour prendre un ensemble de trois booléens et le convertir en un int pour une instruction switch:Conversion d'un ensemble de booléens à un certain nombre
int bits = 0;
bool a = true, b = false, c = true; // 101 = 5
bits = bits | a << 2;
bits = bits | b << 1;
bits = bits | c;
cout << bits;
J'ai huit cas sur la base sur l'état combiné de ces trois booléens. Est-ce que je fais ça bien?
Droit, pas dans le sens de la syntaxe, mais s'il y a des problèmes, s'il vous plaît aviser. Plus juste dans le sens de "Est-ce la meilleure façon de résoudre ce problème?"
Voulez-vous dire C ou C++? Cela fait une différence dans la plupart des cas. –
En traitant plusieurs opérateurs, j'ajoute toujours des parenthèses pour la clarté de la précédence: 'bits = bits | (a << 2); ' Cela dit, je ne suis pas sûr de savoir comment le déplacement d'un objet booléen en C++ est géré. Peut-être besoin de lancer 'a' et' b' à '(int)'. – ysap