Jayesh Jayesh - 23 days ago 8
C Question

What is the purpose of "int mask = ~0;"?

I saw the following line of code here in C.

int mask = ~0;


I have printed the value of
mask
in C and C++. It always prints
-1
.

So, I have some questions:


  • Why assigning value
    ~0
    to the mask variable?

  • What is the purpose of
    ~0
    ?

  • Can we use
    -1
    instead of
    ~0
    ?


Answer Source

It's a portable way to set all the binary bits in an integer to 1 bits without having to know how many bits are in the integer on the current architecture.