I was trying to get a variable to represent all 1's. here is my code:

unsigned long long x;

x = ~0;

cout << x << endl;

when x is printed, it give me 18446744073709551615. I plug that into a calculator and it spits out a 1 followed by 64 zeros. Number 1. I thought long long was 64 bits (on a 32 bit machine) and not 65 and 2. why is it not all 1's? Is x the correct value and I just am not printing it out correctly?