首頁  >  文章  >  Java  >  為什麼在 Java 乘法中為一個運算元加上「L」會改變結果?

為什麼在 Java 乘法中為一個運算元加上「L」會改變結果?

Linda Hamilton
Linda Hamilton原創
2024-11-07 12:29:02740瀏覽

Why does adding

為什麼帶和不帶「L」的乘法結果不一樣?

在Java中,使用「L」時乘法運算會產生不同的結果運算元之一的後綴。

加上「L」以獲得正確的長值

加上「L」可確保結果是長值。整數相乘時,結果也是整數。如果結果超出整數範圍(2147483647 到 -2147483648),則會溢出並變成負數。

透過在表達式中將「L」加到 365,您可以明確指定它是一個 long 值。這確保了它與其他整數相乘的結果是一個 long 值,並且不會被截斷到整數範圍。

沒有「L」:不正確的整數結果

當不帶「L」的整數相乘時,結果是整數。如果結果超出整數範圍,它會「環繞」並成為不同的值。

例如,乘法 1000606024365 不加 " L" 給出了錯誤的結果 1471228928。這是因為結果 31536000000 溢出了整數範圍,變成了 -1702967296(31536000000 的 2 的補碼表示)。

二進位表示

兩個結果的二進位表示顯示差異:

  • 10006060 24365L:011101010111101100010010110000000000
  • 1000 60601000 60
  • 60
1000

60

60如果不加上“L”,則四個最高有效位元將被截斷,導致錯誤的表示0101011110110001 0010110000000000,其中對應於錯誤的結果。
  • 其他注意事項
  • 如果乘法結果在整數範圍內,則增加「L」不會產生差異。 中間計算過程中可能會發生溢位。即使最終結果符合整數範圍,在執行大值算術運算時,考慮溢位也很重要。 將「L」移至表達式的開頭,例如 365L
  • 1000
606024*30,確保可能溢出整數範圍的乘法的正確性。

以上是為什麼在 Java 乘法中為一個運算元加上「L」會改變結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn