Tu fais quoi des retenues en combinant tes bits dans la même opération ?
Il n'y a pas d'addition entre deux bits, juste des &, |, ~ (and, or, not).
Tu veux peut-être un bit field.
Si tu veux être sûr de faire des opérations sur des mots de 32 ou 64 bits, il va te falloir un union aussi, mais ce comportement n'est pas standard.
Tu peux même aller plus loin avec les instructions vectorielles type SSE.
Mais avant d'optimiser à la main, vérifie que ton compilateur n'optimise pas déjà tes opérations.
Si tu veux être sûr de faire des opérations sur des mots de 32 ou 64 bits, il va te falloir un union aussi, mais ce comportement n'est pas standard.
Tu peux même aller plus loin avec les instructions vectorielles type SSE.
Mais avant d'optimiser à la main, vérifie que ton compilateur n'optimise pas déjà tes opérations.
Je crois que les bit field sont quand même implémentés avec des int, et on n’échappe pas aux shifts et aux masks. Je ne crois pas que le compilateur optimise ça tout seul, mais je vais vérifier.