Opérations sur les bits

Anne bits

Cet intéressant article donne une liste de trucs pour manipuler les bits. Les premiers exemples sont triviaux, mais les suivants sont bien intéressants.

Je les résume ici, voir l’article pour les explications :

  • Bit Hack #1. Check if the integer is even or odd.

      if ((x & 1) == 0) { x is even } else { x is odd }
    

: Bit Hack #2. Test if the n-th bit is set.

    if (x & (1<<n)) { n-th bit is set } else { n-th bit is not set }

: Bit Hack #3. Set the n-th bit.

    y = x | (1<<n)

: Bit Hack #4. Unset the n-th bit.

    y = x & ~(1<<n)

: Bit Hack #5. Toggle the n-th bit.

    y = x ^ (1<<n)

: Bit Hack #6. Turn off the rightmost 1-bit.

    y = x & (x-1)

: Bit Hack #7. Isolate the rightmost 1-bit.

    y = x & (-x)

: Bit Hack #8. Right propagate the rightmost 1-bit. (transforme tous les 0 les plus à droite en 1)

    y = x | (x-1)

: Bit Hack #9. Isolate the rightmost 0-bit.

    y = ~x & (x+1)

: Bit Hack #10. Turn on the rightmost 0-bit.

    y = x | (x+1)

Voir aussi Bit Twiddling Hacks pour des tonnes d’astuces du même genre.