%code% wird auf andere Weise dargestellt als integrale Typen. Weitere Informationen zum Floating-Typ finden Sie hier: Ссылка . Der gekochte Inhalt würde so aussehen: Das Fließkommaformat besteht aus einem Vorzeichenbit, 8 Bit für den Exponenten und 23 Bit für den Bruchteil des Wertes. Der Wert wird wie folgt berechnet: (-1) ^ Zeichenbit * 1.Fraktionalteil * 2 ^ (Exponent - 127). Somit erlaubt dieser Algorithmus die Darstellung größerer Werte als ein 64-Bit-Integraltyp.
%code% verwendet mehr Bytes, aber es hat einen kleineren Bereich: während %code% nicht über 2 63 hinausgehen kann, kann %code% auf etwa 2 127 gehen . Offensichtlich wird die Erweiterung der Reichweite mit dem Preis niedrigerer Genauigkeit durchgeführt, aber da der Bereich von %code% größer ist, ist die Umwandlung von %code% in %code% eine Werbung.
Dieser schnelle Test sollte zeigen warum:
%Vor%Ausgabe:
%Vor%Beachten Sie die wissenschaftliche Notation in der Float-Zeile. Der Float nimmt weniger Platz ein, aber aufgrund seiner Darstellung kann er eine größere Anzahl als ein Long enthalten.
Ich habe gelesen, dass in Java der lange Typ float und double ( Ссылка ) beworben werden kann. Ich wollte fragen, dass lange Integer dauert 8 Bytes Speicher in JAVA und float dauert 4 Bytes dann, wie diese Förderung funktioniert? Ist es nicht möglich, dass uns ein Datenverlust drohen könnte, wenn wir auf diese Weise werben?
Es fällt auch auf, dass alle anderen Arten von Promotions von einem kleineren primitiven Datentyp zu ähnlichen oder größeren Datentypen sind.