回家無聊看了會兒書,于是發現自己好大意,驚恐了一會兒,自己學習C語言的時候沒注意,或者是忘了,細細說來:
例如:
對于int型數據范圍是-2^32~~2^32-1;也就是-2147483648~~2147483647,那么設a=-2147483648,b=2147483647,則a-1,b+1的結果是多少?
我沒在意,想想越界了,也就沒多管,而事實上呈現一種循環結構
#include <iostream>
using namespace std;

int main()


{
int a=2147483647, b=-2147483648;
//a表示int型能表示的最大的整數,b表示能表示的最小的整數
cout<<"轉折現象modular"<<endl;
cout<<a+1<<endl;
cout<<b-1<<endl;
//既可以將int型數據看成一個循環的圓圈
return 0;
}

/**//*******************

轉折現象modular
-2147483648
2147483647
Press any key to continue

******************/
其原因很好解釋,用char型可以簡單證明,要注意的是超過8位的進位會被舍去
在這里我們知道計算機內數據均用補碼表示。
例如127是這樣的0111 1111
127+1==》1000 0000即為-128
例如:
對于int型數據范圍是-2^32~~2^32-1;也就是-2147483648~~2147483647,那么設a=-2147483648,b=2147483647,則a-1,b+1的結果是多少?
我沒在意,想想越界了,也就沒多管,而事實上呈現一種循環結構
#include <iostream>
using namespace std;
int main()

{
int a=2147483647, b=-2147483648;
//a表示int型能表示的最大的整數,b表示能表示的最小的整數
cout<<"轉折現象modular"<<endl;
cout<<a+1<<endl;
cout<<b-1<<endl;
//既可以將int型數據看成一個循環的圓圈
return 0;
}
/**//*******************
轉折現象modular
-2147483648
2147483647
Press any key to continue
******************/其原因很好解釋,用char型可以簡單證明,要注意的是超過8位的進位會被舍去
在這里我們知道計算機內數據均用補碼表示。
例如127是這樣的0111 1111
127+1==》1000 0000即為-128


