First you should know '~' character is bit-wise NOT
let's see what will happen when we use bit-wise not
unsigned char var = ~0;
printf("%u", var); // Output: 255
in binary format
# 8-Bit Variable
0b00000000 -> 0b11111111
OR
0b11111111 -> 0b00000000
or another example
0b11001100 -> 0b00110011
so we learn that bit-wise NOT reverse every bit in our variable, no matter what bit is 0 or 1 it'll be reverse
now what will happen if we use bit-wise NOT over a larger variable
unsigned short var = ~0;
printf("%X", var); // Output: FFFF
in binary:
0b00000000_00000000 -> 0b11111111_11111111
so now you can sure bit-wise NOT don't care about value of variable and size of variable, it just reverse all bits in our variable even if you have a 64-bit variable