在C/C++中,如何得到int型能表示的最大值,最小值?
第一種方法:
在limits.h/climits中,定義了INT_MAX,INT_MIN,可以直接使用
第二種方法:
如果要通過程序得到,比較簡單的一種方法是靠操作內存中的二進制位了,具體需要了解數值在內存中的表示,牽涉到數據的原碼、反碼、補碼。
可以 #define MAX_INT (((unsigned int)(-1))>>1)
#define MIN_INT MAX_INT+1 //在使用的時候需要將其賦給一個有符號整形變量才行,然后使用那個變量,直接作為一個值使用是不對的,
原理的話知道了內存中數據的表示自然就很容易理解了。
第三種方法:
可以定義一個無符號整數數
unsigned int zero = 0; int max_int = ~zero/2;
在內存中0XFFFFFFFF表示為有符號數為-1
0X10000000表示為有符號數為INT_MIN