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