為什麼帶和不帶「L」的乘法結果不一樣?
在Java中,使用「L」時乘法運算會產生不同的結果運算元之一的後綴。
加上「L」以獲得正確的長值
加上「L」可確保結果是長值。整數相乘時,結果也是整數。如果結果超出整數範圍(2147483647 到 -2147483648),則會溢出並變成負數。
透過在表達式中將「L」加到 365,您可以明確指定它是一個 long 值。這確保了它與其他整數相乘的結果是一個 long 值,並且不會被截斷到整數範圍。
沒有「L」:不正確的整數結果
當不帶「L」的整數相乘時,結果是整數。如果結果超出整數範圍,它會「環繞」並成為不同的值。
例如,乘法 1000606024365 不加 " L" 給出了錯誤的結果 1471228928。這是因為結果 31536000000 溢出了整數範圍,變成了 -1702967296(31536000000 的 2 的補碼表示)。
二進位表示
兩個結果的二進位表示顯示差異:
60
60如果不加上“L”,則四個最高有效位元將被截斷,導致錯誤的表示0101011110110001 0010110000000000,其中對應於錯誤的結果。以上是為什麼在 Java 乘法中為一個運算元加上「L」會改變結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!