I am trying REALLY hard to flip the bits in a C int variable. I am doing it like so:

input = 15;

input = ~input;

printf("%d", input);

BUT IT ALWAYS SHOWS UP as -16. It should be 0! if 15 is written as 1111, why is it returning 10000?! This is maddening! Can somebody PLEASE help me!?

Edit
Report