Warum unterschiedliche Multiplikationsergebnisse mit und ohne „L“?
In Java führt die Multiplikationsoperation zu unterschiedlichen Ergebnissen, wenn das „L“ verwendet wird. Suffix für einen der Operanden.
Hinzufügen von „L“ für korrekten langen Wert
Durch Hinzufügen von „L“ wird sichergestellt, dass das Ergebnis ein langer Wert ist. Bei der Multiplikation ganzer Zahlen ist das Ergebnis ebenfalls eine ganze Zahl. Wenn das Ergebnis den Bereich einer Ganzzahl (2147483647 bis -2147483648) überschreitet, läuft es über und wird negativ.
Durch das Hinzufügen von „L“ zu 365 im Ausdruck geben Sie explizit an, dass es sich um einen langen Wert handelt. Dadurch wird sichergestellt, dass das Ergebnis der Multiplikation mit den anderen Ganzzahlen ein langer Wert ist und nicht auf den Ganzzahlbereich gekürzt wird.
Ohne „L“: Falsches Ganzzahlergebnis
Bei der Multiplikation von ganzen Zahlen ohne „L“ ist das Ergebnis eine ganze Zahl. Wenn das Ergebnis den ganzzahligen Bereich überschreitet, wird es „umgebrochen“ und erhält einen anderen Wert.
Zum Beispiel die Multiplikation 1000606024365 ohne Addition von „ „L“ liefert das falsche Ergebnis 1471228928. Dies liegt daran, dass das Ergebnis 31536000000 den Ganzzahlbereich überschreitet und zu -1702967296 wird (die Zweierkomplementdarstellung von 31536000000).
Binärdarstellung
Die binären Darstellungen der beiden Ergebnisse zeigen den Unterschied:
Wenn Sie „L“ nicht hinzufügen, werden die vier höchstwertigen Bits abgeschnitten, was zu einer falschen Darstellung führt. 0101011110110001 0010110000000000, was entspricht dem falschen Ergebnis.
Weitere Überlegungen
Das obige ist der detaillierte Inhalt vonWarum ändert das Hinzufügen von „L“ zu einem Operanden in einer Java-Multiplikation das Ergebnis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!