-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倍的情況下 –