2013-10-07 61 views
0

据我所知,波浪翻转每一个比特,但如果我不int num = ~0
为什么结果是num = -1intunsigned int既不最大值?位操作波浪

+6

http://en.wikipedia.org/wiki/Two's_complement –

回答

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无符号整型NUM =〜 0,结果是num = 4294967295,我认为这应该是unsigned int的最大值 – DoReMi

+1

unsigned 4294967295和signed -1具有相同的位模式。 –

+0

@JonathanPotter嘿!谢谢! – DoReMi