91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java如何實現判斷整數溢出并提示

發布時間:2020-10-27 19:22:45 來源:億速云 閱讀:174 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關Java如何實現判斷整數溢出并提示,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

解決方案

JDK8已經幫我們實現了Math下,不得不說這個方法是在StackOverflow找到了的,確實比國內一些論壇好多了

加法

public static int addExact(int x, int y) {
    int r = x + y;
    // HD 2-12 Overflow iff both arguments have the opposite sign of the result
    if (((x ^ r) & (y ^ r)) < 0) {
      throw new ArithmeticException("integer overflow");
    }
    return r;
  } 

減法

 public static int subtractExact(int x, int y) {
    int r = x - y;
    // HD 2-12 Overflow iff the arguments have different signs and
    // the sign of the result is different than the sign of x
    if (((x ^ y) & (x ^ r)) < 0) {
      throw new ArithmeticException("integer overflow");
    }
    return r;
  } 

乘法

public static int multiplyExact(int x, int y) {
    long r = (long)x * (long)y;
    if ((int)r != r) {
      throw new ArithmeticException("integer overflow");
    }
    return (int)r;
  } 

注意 long和int是不一樣的

 public static long multiplyExact(long x, long y) {
    long r = x * y;
    long ax = Math.abs(x);
    long ay = Math.abs(y);
    if (((ax | ay) >>> 31 != 0)) {
      // Some bits greater than 2^31 that might cause overflow
      // Check the result using the divide operator
      // and check for the special case of Long.MIN_VALUE * -1
      if (((y != 0) && (r / y != x)) ||
        (x == Long.MIN_VALUE && y == -1)) {
        throw new ArithmeticException("long overflow");
      }
    }
    return r;
  } 

上述就是小編為大家分享的Java如何實現判斷整數溢出并提示了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

托克逊县| 旅游| 红安县| 舒兰市| 瑞金市| 江口县| 宣汉县| 邵武市| 临汾市| 喜德县| 石景山区| 天全县| 文成县| 宣汉县| 台州市| 中西区| 根河市| 桐乡市| 金阳县| 精河县| 东辽县| 克什克腾旗| 尼玛县| 山丹县| 曲水县| 金塔县| 富平县| 江孜县| 卫辉市| 滨州市| 徐州市| 巴彦淖尔市| 永春县| 中卫市| 柳江县| 洪泽县| 甘泉县| 安徽省| 安国市| 报价| 八宿县|