獲取整數的最大值最小值

2021-09-06 13:34:58 字數 982 閱讀 5455

c/c++常需要獲得最大值,最小值,通常這兩個數與平台和作業系統有關,因此可移植的辦法就是推薦使用庫函式提供的常量定義

1. 利用語言自定義

類似的常量定義在limits.h和float.h標頭檔案中。在標頭檔案中,整數的最值通常是這樣的名字:int_max, int_min,直接使用即可。

2. 自定義變數

int max_int = ((unsigned)(-1))>>1

;int min_int = ~max_int;

解釋int佔4個位元組。-1是有符號數,預設用補碼表示,二進位制表示為32個1,如果強制解釋為無符號數,那麼

(unsigned)(-1)

=(11111111 11111111 11111111 11111111)2(無符號數)

=2^0+2^1+2^2+....+2^31

=2^32-1

=4294967295

那麼右移一位

(unsigned)(-1)>>1

=(01111111 11111111 11111111 11111111)2(無符號數)

=2^31-1

=2147483647

程式例證

#include using

namespace

std;

intmain()

結果

注意

~(unsigned(-1) >> 1) = 2147483648(無符號的)

~max_int = 2147483648(有符號的)

取整數的最大值最小值值,

1 類似的常量定義在limits.h和float.h標頭檔案中,可以檢視原始檔獲取類似常量的使用辦法。在標頭檔案中,整數的最值通常是這樣的名字 int max,int min,直接使用即可。2 當然這兩個最值完全可以通過程式設計實現 define max int unsigned 1 1 defin...

最大值 最小值

求最大最小的時候有點小技巧,就是我們兩個兩個的比較,把大個跟當前最大比較,小的跟當前最小的比較,這樣就會節約一點比較時間,有原來的2 n到3 n 2。include include 得到最大最小值 int getmaxmin int ndata,int nlen,int pnmax,int pnmi...

獲取整數的最大值最小值的巨集定義

在c c 程式設計中時常需要使用整數的最大值最小值,通常這兩個常用是跟平台和作業系統有關的,不同的平台會有不同的值,因此可移植的辦法就是推薦使用庫函式提供的常量定義。1 類似的常量定義在limits.h和float.h標頭檔案中,可以檢視原始檔獲取類似常量的使用辦法。在標頭檔案中,整數的最值通常是這...