std::cout << "int\t" << std::numeric_limits::lowest() << '\t' << std::numeric_limits ::max() << '\n';
輸出結果為:
int -2147483648 2147483647
int max_int = (int)((unsigned)~0 >> 1); cout << max_int << endl;
輸出結果為:
2147483647
結果是一樣的. 這行代碼需要解讀:
int min = -(int)((unsigned)~0 >> 1) - 1;
只是在已經算出的最大值的基礎上加上符號, 並減一.
Created: 2016-01-14 四 10:37
Validate