-6
的
在下面的代码给出输出-1
。否定位
#include <iostream>
using namespace std;
int main()
{
int x=0;
cout<<~x;
return 0;
}
但是,当我做如下修改答案更改4294967295
。 只是想知道,为什么在INT它是不是给-2147483647
这是111 .... 32倍
#include <iostream>
using namespace std;
int main() {
unsigned int x=0;
cout<<~x;
return 0;
}
也许你需要了解[补](https://en.wikipedia.org/wiki/Two's_complement) ? –
你期望什么? 'unsigned'不能包含负数,所以'all bits 1'将会是一个很大的数字,而'signed'则不会(提示:符号位,二进制补码)。你的具体问题是什么? –
只是想知道,为什么在INT它是不是给-2147483647这是111 .... 32倍的情况下 –