簡體   English   中英

如何以INT_MAX模數得到結果?

[英]How can I get the result modulo INT_MAX?

如果我嘗試應用: Integer.valueOf(String.valueOf(Integer.MAX_VALUE) + "9");
我得到一個NumberFormatException

但我需要從String表示中獲取余數模數為Integer.MAX_VALUE

我怎樣才能做到這一點?

UPD: Integer.valueOf(String.valueOf(Integer.MAX_VALUE) + "9"); 只是一個例子。 該字符串的值可能超過Long的最大值。

您正在尋找BigInteger 這允許數學使用非常大的數字。

以下將允許您使用非常大的數字進行模數:

BigInteger number = new BigInteger(myValueAsString);
BigInteger intMax = BigInteger.valueOf(Integer.MAX_VALUE);
BigInteger remainder = number.remainder(intMax);

要保存大量輸入,您可以嘗試BigInteger類。 創建一個將保存String輸入的對象,並使用第二個BigInteger類對象對其進行模數化,該對象將保存整數的MAX_VALUE。

您可以將代碼編寫為:

        BigInteger bigInteger = new BigInteger(str);
        bigInteger  = bigInteger.remainder(new BigInteger(String.valueOf(Integer.MAX_VALUE)));
        System.out.println(bigInteger);

試試這個

int i = (int)Long.parseLong(String.valueOf(Integer.MAX_VALUE) + "9");

注意:我會使用(Integer.MAX_VALUE +“9”)

你也可以這樣試試:

    System.out.println(Long.valueOf(String.valueOf(Integer.MAX_VALUE + "9")) % 5);

使用

BigDecimal bd = new BigDecimal(str);

嘗試以下代碼

int i = Integer.MAX_VALUE ;
System.out.println(i+1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM