Today we will play with bit ( I will type the last 8 bit rather than 32 bit to simplify my explanation).

This is the first series from "Trilogy Of Bit Manipulation".

int x = 0;

//The bit value is : 00000000 (all the bit is 0).

x = x | (1<<0); // set the 0-th bit from right.

// The bit value is : 00000001 (the last bit is 0).

x = x | (1<<2); // set the 2-th bit from right.

// The bit value is : 00000101.

How does it work ?

| is OR operation :

1 or 1 = 1

1 or 0 = 1

0 or 1 = 1

0 or 0 = 0

<< is Shift Left operation :

1<<0 = 1 = 00000001

1<<1 = 2 = 00000010

1<<2 = 4 = 00000100

1<<3 = 8 = 00001000

So when I have x = 10 = 00001010

And I want to set the 5-th bit:

x = x | (1<<5); // long version

x |= (1<<5); // short version

x = 10 = 00001010

1<<5 = 32 = 00100000

OR operation-----------

00101010

## No comments:

## Post a Comment