Получить INT_MAX с помощью битовых операций

Как я могу получить значение INT_MAX с использованием только побитовых операторов в C? Я ожидал, что ~ 0 будет 1111111111 (дополнение к 1 , поэтому десятичное -1 ) и ~ 0 >> 1 будет 0111111111 , что будет максимумом, но все равно -1 .

Почему это так и как я могу получить значение INT_MAX с помощью битовых операций?

6
задан Paul Manta 22 February 2012 в 20:25
поделиться