Бит манипуляции тильда

0

Я понимаю, что тильда переворачивает все биты, но если я делаю int num = ~0
Почему результат num = -1, ни максимальное значение int ни unsigned int?

Теги:
bit
tilde

1 ответ

1

Но это максимальное значение unsigned:

#include <iostream>
#include <limits>

int main() {
  std::cout << ( unsigned(-1) == std::numeric_limits<unsigned>::max() )
            << std::endl;
  return 0;
}

http://ideone.com/y4JuFe

  • 0
    Но если я сделаю int unsigned int num = ~ 0, результат будет num = 4294967295, я думаю, что это будет максимум без знака int
  • 1
    Без знака 4294967295 и со знаком -1 имеют одинаковую битовую комбинацию.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню