C++ 位操作平铺
我知道tilde会翻转每一位,但如果我这样做的话,C++ 位操作平铺,c++,bit,tilde,C++,Bit,Tilde,我知道tilde会翻转每一位,但如果我这样做的话,int num=~0 为什么结果是num=-1,既不是int的最大值,也不是unsigned int?但它是unsigned的最大值: #include <iostream> #include <limits> int main() { std::cout << ( unsigned(-1) == std::numeric_limits<unsigned>::max() )
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;
}
#包括
#包括
int main(){
std::cout但如果我做int unsigned int num=~0,结果是num=4294967295,我想这应该是无符号intUnsigned 4294967295和有符号-1具有相同位模式的最大值。@JonathanPotter明白了!谢谢!