Я понимаю, что тильда переворачивает все биты, но если я это сделаю int num = ~0
Почему результат num = -1
, ни максимальное значение int
или же unsigned int
?
Но это максимальное значение unsigned
:
#include <iostream>
#include <limits>
int main() {
std::cout << ( unsigned(-1) == std::numeric_limits<unsigned>::max() )
<< std::endl;
return 0;
}
Других решений пока нет …