Побитовое отрицание C создает отрицательный результат: [duplicate]

This question already has an answer here:

What does ~ operator do? 3 answers

Я очень стараюсь перевернуть биты в переменной C int. Я делаю это так:

input = 15;

input = ~input;

printf("%d", input);

НО ЭТО ВСЕГДА ПОКАЗЫВАЕТ КАК-16, Так должно быть0! если15 написано как1111почему он возвращается10000?! Это сводит с ума! Может кто-нибудь ПОЖАЛУЙСТА, помогите мне !?

Ответы на вопрос(3)

Ваш ответ на вопрос