User Tools

Site Tools


chess:programming:bit_operations

This is an old revision of the document!


Chess - Programming - Bit Operations

ExpressionDescriptionExample
x & yAND the bits of x with those of y21 & 7 = 10101 & 00111 = 00101 = 5
x | yOR the bits of x with those of y21 | 7 = 10101 | 00111 = 10111 = 23
x ^ yXOR the bits of x with those of y21 ^ 7 = 10101 ^ 00111 = 10010 = 18
~xInverting (complementing) the bits of x (0 → 1 and 1 → 0)~7 = 11111111111111000 = 65528
x « yShift the bits of x to the left y positions25 « 3 = 10101 « 3 = 10101000 = 168
x » yShift the bits of x to the right y positions25 » 3 = 10101 » 3 = 00010 = 2

Get only even or odd bits

Take a number, say 12345678.

  • In Binary, this is 00000000101111000110000101001110.

Apply an even mask against it:

00000000101111000110000101001110   &    (n)
10101010101010101010101010101010        (0xAAAAAAAA)
————————————————————————————————
00000000101010000010000000001010        (Contains all even bits)

Apply an odd mask against it:

00101101011001010111000110001001   &    (n)
01010101010101010101010101010101        (0x55555555)
————————————————————————————————
00000000000101000100000101000100        (Contains all odd bits)

NOTE: Use Masks.

  • 0xAAAAAAAA = 1010 1010 1010 1010 1010 1010 1010 1010
  • 0x55555555 = 0101 0101 0101 0101 0101 0101 0101 0101

chess/programming/bit_operations.1636105935.txt.gz · Last modified: 2021/11/05 09:52 by peter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki