Heim  >  Artikel  >  Java  >  Warum ändert das Hinzufügen von „L“ zu einem Operanden in einer Java-Multiplikation das Ergebnis?

Warum ändert das Hinzufügen von „L“ zu einem Operanden in einer Java-Multiplikation das Ergebnis?

Linda Hamilton
Linda HamiltonOriginal
2024-11-07 12:29:02740Durchsuche

Why does adding

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:

  • 1000606024365L: 011101010111101100010010110000000000
  • 1000 606024365: 011111111111111111111111111111

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

  • Wenn die Multiplikation einen Wert innerhalb des Ganzzahlbereichs ergibt, ergibt das Hinzufügen von „L“ keinen Differenz.
  • Überläufe können bei Zwischenberechnungen auftreten. Auch wenn das Endergebnis in den ganzzahligen Bereich passt, ist es wichtig, Überläufe zu berücksichtigen, wenn arithmetische Operationen mit großen Werten ausgeführt werden.
  • Verschieben von „L“ an den Anfang des Ausdrucks, z. B. 365L1000606024*30, stellt die Korrektheit bei Multiplikationen sicher, die einen ganzzahligen Bereich überschreiten könnten.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn