【问题标题】:Bit manipulation tilde位操作波浪号
【发布时间】:2013-10-13 11:17:20
【问题描述】:

我知道波浪号会翻转每一位,但如果我这样做 int num = ~0
为什么结果是 num = -1 ,而不是 intunsigned int 的最大值?

【问题讨论】:

标签: c++ bit tilde


【解决方案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

【讨论】:

  • 但是如果我做 int unsigned int num = ~0,结果是 num = 4294967295,我认为这应该是 unsigned int 的最大值
  • 无符号 4294967295 和有符号 -1 具有相同的位模式。
  • @JonathanPotter 明白了!谢谢!
猜你喜欢
  • 2016-12-06
  • 2019-07-07
  • 2014-06-10
  • 2013-07-25
  • 2019-04-09
  • 2012-10-10
  • 2011-06-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多