首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++14 獲取整數類型的最大值與最小值

     編輯:關於C++

標準庫方法

C++11 引入 <limits>,提供 std::numeric_limits<T>::max() 和 ::lowest()(C++11 為 ::min(),C++14 改為 ::lowest() 表示最小有限值)。

#include 
#include 
int main() {
    std::cout << "int\t" << std::numeric_limits::lowest() 
              << '\t' << std::numeric_limits::max() << '\n';
    // 輸出: int   -2147483648   2147483647
}

手動實現最大值

利用無符號整數的位運算:

int max_int = (int)((unsigned)~0 >> 1);
std::cout << max_int << std::endl; // 2147483647

原理解析:

  1. ~0:所有位取反,得到全 1 的位模式。
  2. (unsigned):轉為無符號,使最高位視為數值位而非符號位。
  3. >> 1:右移一位,最高位補 0,相當於除以 2,得到最大正整數。
  4. 轉回 int,無溢出。

手動實現最小值

在最大值基礎上取反並減一:

int min_int = -(int)((unsigned)~0 >> 1) - 1;
// 即 -2147483648

因為有符號整數通常採用補碼表示,最小值 = -(最大值) - 1。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved