程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++14整數最大/小值

C++14整數最大/小值

編輯:關於C++

Table of Contents

1. 如何獲取最大值1.1. C++14的方法1.2. 如何自己實現最大值1.3. 如何自己實現最小值

1 如何獲取最大值

1.1 C++14的方法

std::cout << "int\t"
  << std::numeric_limits::lowest() << '\t'
  << std::numeric_limits::max() << '\n';

輸出結果為:

int	-2147483648	2147483647

1.2 如何自己實現最大值

int max_int = (int)((unsigned)~0 >> 1);
cout << max_int << endl;

輸出結果為:

2147483647

結果是一樣的. 這行代碼需要解讀:

    ~0 是取反, 所有位都設置為1(unsigned)轉型是把左起第一位解讀為無符號位,為下一步右移做准備>> 1 是右移一位(除以2), 因為是unsigned類型整數, 所以左邊補0再將結果轉換成目標類型int, 因為沒有溢出,所以肯定可以

    1.3 如何自己實現最小值

    int min = -(int)((unsigned)~0 >> 1) - 1;
    

    只是在已經算出的最大值的基礎上加上符號, 並減一.

    Author: dean

    Created: 2016-01-14 四 10:37

    Validate

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved