[Java] Berechnungsmechanismus, Operatoren und Typkonvertierung

Wie Java-Berechnungen funktionieren

5 + 4

Dies bleibt ungeklärt. Java gibt Ihnen die Antwort 9, indem Sie 5 und 4 addieren.

Dann

5 + 4 - 3

Wenn ja, wie berechnet Java? : Denken: Zuallererst

Addiere 5 und 4, um 9 zu erhalten. Dann subtrahiere 9 -3, um 6 zu erhalten.

Diese 5 und 4 und 3 heißen übrigens ** Operand **.

Die Berechnungsverarbeitung von Java gemäß der Formel wird als ** Auswertung ** bezeichnet. Das mit den Operanden und Operatoren erhaltene Berechnungsergebnis heißt ** verstümmelt **. Im Fall von 5 + 4 - 3 in der vorherigen Formel bewerten Sie zuerst 5 + 4 und verwandeln Sie es in 9. Bewerten Sie dann 9-3 und verwandeln Sie es in 6. Es ist wie: Lächeln:

5 + 4 * 3

Eine Formel mit einer Mischung aus Multiplikationen. Gleiche Reihenfolge wie in der Schule gelernt: Lächeln:

Bewerten Sie es zuerst mit 4 ✕ 3 und es wird 12. Dann wertet es 5 + 12 aus und wird zu 17.

(5 + 4) * 3

Auch hier ist die Reihenfolge dieselbe, die ich in der Schule gelernt habe: Lächeln: Berechnen Sie zunächst den Inhalt von (). Bewerten Sie (5 + 4) und verwandeln Sie es in 9. Bewerten Sie dann 9 ✕ 3 und verwandeln Sie es in 27.

.


5 / 4

Was passiert in diesem Fall? : Denken: Die Antwort lautet 1,25, wenn sie normal berechnet wird. Es erscheint jedoch nicht in 1.25. Die richtige Antwort ist 1.

Der Grund ist einfach: Lächeln: Dies liegt daran, dass es sich um eine Berechnung zwischen ganzen Zahlen handelt. Der Teil nach dem Dezimalpunkt wird abgeschnitten.

Wenn Sie also nach dem Dezimalpunkt anzeigen möchten

5,0 / 4 oder 5 / 4,0 oder 5,0 / 4,0

Und wenn einer oder beide fraktioniert sind, wird dies als 1,25 angezeigt: smile:

Aufgabenverwalter

: sunny: Weisen Sie der Variablen des linken Operanden den Inhalt des rechten Operanden zu

Ich habe es etwas schwierig erklärt, aber ich hoffe, es wird einfacher, wenn Sie sich an [Variablen] erinnern (https://qiita.com/mikimikiman/items/dee9b6dd46a2ca03741e).

Beispiel.java


number = 10;

Dies ist der eine: heat_smile: Der richtige Operand ist hier 10. Der linke Operand ist hier die Nummer. Ersetzen Sie also die Zahl durch 10: Lächeln:

Zuweisungsoperatoren können zusätzlich zu = mit anderen Operatoren kombiniert werden.

Beispiel a + = 5 (bedeutet a = a + 5) a- = 5 (bedeutet a = a-5)

Eine solche. Die Bedeutung ist, 5 zu a zu addieren und a zu ersetzen. Subtrahieren Sie 5 von a und weisen Sie es a zu. Es wird sein.

Wenn a 6 als Anfangswert enthält 6 + 5 wird zuerst berechnet, um 11 zu erhalten, und 11 wird a zugewiesen. Im Falle der Subtraktion wird 6-5 zuerst berechnet, um 1 zu werden, und 1 wird a zugewiesen.

Inkrementierungsoperator und Dekrementierungsoperator

Ich erklärte, dass der Zuweisungsoperator a + = 5 ist (was a = a + 5 bedeutet). Wenn Sie nur 1 erhöhen möchten, gibt es andere Möglichkeiten, es zu schreiben.

Inkrementoperator.


a++;

Synonym für a + = 1 oder a = a + 1: Lächeln: Das Erhöhen des Werts dieser Variablen um 1 wird als Inkrementoperator bezeichnet.

Operator dekrementieren.


a--;

Im Gegensatz zum Inkrementoperator Das Verringern des Werts einer Variablen um 1 wird als Dekrementierungsoperator bezeichnet.

Grundsätzlich wird der Inkrementierungs- / Dekrementierungsoperator nicht mit anderen Operatoren verwendet. Wenn Sie sie zusammen verwenden, tritt ein geringfügiger Berechnungsfehler auf. Wenn es keine Umstände gibt, ist es daher besser, es alleine zu verwenden. (Mischen Sie nicht mit anderen Operatoren wie ++ * 50, sondern nur ++; bei Verwendung)

Typkonvertierung

.


5 / 4

Wenn Sie die Berechnung des Dezimalpunkts zum Zeitpunkt dieser Berechnung anzeigen möchten

5,0 / 4 oder 5 / 4,0

Ich glaube, ich habe dir gesagt, du sollst es ausfüllen. Dies wird auch als Typkonvertierung bezeichnet.

Was genau ist diese Typkonvertierung? ?? : Denken: Das heißt, ** Typkonvertierung dient zum Konvertieren eines Datentyps (z. B. int oder double) in einen anderen Datentyp. ** ** **

Selbst wenn Sie 5.0 / 4 eingeben, erledigt der Computer dies für Sie.

Ah ja ja. Sie sollten nach 5.0 / 4.0 fragen.

Die Antwort wird automatisch als 1,25 interpretiert und angezeigt. Der Typ wird automatisch von einem Bruch / einer Ganzzahl in einen Bruch / eine Fraktion konvertiert.

Geben Sie die Konvertierung von Ganzzahl in Ganzzahl ein

Können Sie dann automatisch etwas konvertieren? : Denken: Das ist nicht der Fall.

Modellname Reihe von speicherbaren ganzen Zahlen
byte -Ganzzahl zwischen 128 und 127
short -Ganzzahl zwischen 32768 und 32767
int -Eine Ganzzahl von 2147483648 bis 2147483647
long -Eine Ganzzahl von 9223372036854775808 bis 9223372036854775807

Wenn Sie sich die Abbildung oben ansehen Für Byte eine Ganzzahl von -128 bis 127 Wenn kurz, eine Ganzzahl von -32768 bis 32767 Es ist geworden.

Ich möchte, dass Sie sich ein wenig vorstellen ...

Byte ist eine kleine Box, da der Bereich der Ganzzahlen, die gespeichert werden können, kleiner ist als der von Short. Da short einen größeren Bereich von Ganzzahlen als Bytes hat, sollte es sich um eine große Box handeln.

Kleine Kisten können in großen Kisten aufbewahrt werden. Große Kartons können jedoch nicht in kleinen Kartons aufbewahrt werden. Es ragt heraus oder die Box selbst ist kaputt.

Gleichzeitig kann die Typkonvertierung von klein nach groß erfolgen. Grundsätzlich ist eine Typkonvertierung von groß nach klein mit Ausnahmen jedoch nicht möglich.

Ganzzahl → Bruch

Wie in 5.0 / 4 erläutert, kann es durch einen Bruch dargestellt werden, sodass eine Typkonvertierung möglich ist. Sie können convert from integer to float und convert from integer to double eingeben.

Bruch → Bruch

Zusammen mit der Ganzzahl ist die Größe der Box relevant. Weil double eine größere Box als float hat Die Typkonvertierung ist von float nach double möglich. Eine Typkonvertierung von Double zu Float ist nicht möglich.

Bruch → ganze Zahl

Es tut mir leid, dass ich oft aufgetaucht bin, aber ich denke, dass die Antwort, die berechnet wurde, als ich sie auf 5,0 / 4 eingestellt habe, 1,25 war. Mit anderen Worten, eine Typkonvertierung von Brüchen in ganze Zahlen ist nicht möglich.

Zusammenfassung der Typkonvertierung

Hier möchte ich die 6 besten Boxgrößen bekannt geben: tada :: raise_hands: Die Box mit dem 1. Platz ist die größte und die Box mit dem 6. Platz ist die kleinste.

Jajan!

Rangfolge :gift:Boxgröße am besten 6:gift:
Erster Platz double
2. Platz float
3. Platz long
4 .. int
5. Platz short
6. Platz byte

Ist das etwas leichter vorstellbar?

Byte-Kun auf Platz 6 hat die kleinste Box, sodass Sie den Typ von Platz 1 auf Platz 5 in einer Box ändern können, die größer ist als Sie. Long auf dem 3. Platz kann den Typ nicht vom 4. auf den 6. Platz in einer Box ändern, die kleiner ist als er selbst. Sie können den Typ in das 1. und 2. Feld ändern, die größer als Sie sind. Das Doppel mit dem 1. Platz ist der Besitzer der größten Box, daher ist es unmöglich, den Typ zu ändern.

Ich werde jetzt darüber schreiben, wie man den Typ ändert: heat_smile:

Beispiel.java


public class Main {
	public static void main(String[] args) {
		int number = 5;
		double decimal = number;
		System.out.println(decimal);
	}
}

In der dritten Zeile habe ich der Variablennummer die Ganzzahl 5 zugewiesen. Es ist eine Ganzzahl, da der Typ int ist.

In der 4. Zeile habe ich der Variablennummer die Variablennummer zugewiesen. Da der Typ doppelt ist, wird er in einen Bruch umgewandelt.

Konsole.


5.0

Darstellung der Division ganzzahliger Variablen als Bruch

Beispiel.java


public class Main {
    public static void main(String[] args) {
        int number1 = 5;
        int number2 = 2;
        System.out.println(number1 / number2);
    }
}

Wie oben erwähnt, ist das Ergebnis der Division ganzzahliger Variablen die ganze Zahl 2. Wenn Sie auch nur eine kleine Zahl richtig ausdrücken wollen ...? : Denken:

Es ist kein Fehler, den int-Typ in den doppelten Typ zu ändern. Es ist mühsam, es jedes Mal zu ändern.

Beispiel.java


System.out.println((double)number1 / number2);

Es ist in Ordnung, wenn Sie vor der Variablen in der Formel (double) hinzufügen: smile: Übrigens ist es in Ordnung, (doppelt) vor Nummer 2 zu setzen: smile:

** Es wird als Besetzung bezeichnet, da es auf diese Weise manuell zwangsweise konvertiert wird. ** ** **

Von großer Form zu kleiner Form

Grundsätzlich ist eine Typkonvertierung von groß nach klein mit Ausnahmen nicht möglich. Ich habe es dir gesagt. Genau genommen kann es getan werden. Dies ist: heat_smile: Der "Ausnahme" -Teil: heat_smile: Dies wird auch als Besetzung bezeichnet, da der Typ zwangsweise konvertiert wird. ** ** **

Int-Kun, der der viertgrößte in der Boxgröße ist. Double-Kun, der die größte Box hat, versucht, in int zu konvertieren.

(Typname des Konvertierungsziels) Ausdruck

Sie können die Typkonvertierung mit erzwingen.

Beispiel.java


public class Main {
	public static void main(String[] args) {
		int number = (int)5.8;
		System.out.println(number);
	}
}

Konsole.


5

Der Bruch 5.8 ist jetzt die ganze Zahl 5: smile:

Wenn Sie von einem großen Typ zu einem kleinen Typ wechseln können, müssen Sie sich darüber keine Gedanken machen: Denken: Ich denke, aber ich empfehle das nicht sehr. ..

Dies liegt daran, dass einige der Daten, die in eine kleine Form gedrückt werden, verloren gehen können oder das fehlende Teil zu einer Fehlfunktion führen kann. Verwenden Sie es also nur, wenn Sie es wirklich als letzten Ausweg verwenden müssen: heat_smile:

Recommended Posts

[Java] Berechnungsmechanismus, Operatoren und Typkonvertierung
Java-Typkonvertierung
Java-Studie Nr. 3 (Typkonvertierung und Befehlsausführung)
[Java] Konvertierung des Datumstyps
[Java] Konvertierung von Listentyp / Array-Typ
[Java] Vergleich der Geschwindigkeit der Typkonvertierung
Java Primer Series (Typkonvertierung)
Java für Anfänger, Ausdrücke und Operatoren 1
Java-Referenzmechanismus (Stack und Heap)
Java für Anfänger, Ausdrücke und Operatoren 2
Konvertierung zwischen Kotlin nullable und Java Optional
Konvertierung des Java-Datumsdatentyps (Datum, Kalender, Zeichenfolge)
[Leicht verständliche Erklärung! ] Konvertierung des Referenztyptyps in Java
[Java ~ Informationen zur Variablendefinition und Typkonvertierung ~] Studiennotiz
Hinweise zu Operatoren, die Java ~ String type ~ verwenden
[Grundkenntnisse in Java] Informationen zur Typkonvertierung
Java 8 LocalDateTime-Typkonvertierung (String, java.util.Date)
Typkonvertierung vom Java Big Decimal-Typ zum String-Typ
Java-Überprüfung ② (Berechnung, Escape-Sequenz, Bewertungsregel, Typkonvertierung, Anweisungsausführungsanweisung)
[Einführung in Java] Informationen zur Typkonvertierung (Besetzung, Promotion)
Optionale Typkonvertierung und Rückgabewert (Nullunterstützung)
Java Optionaler Typ
[Verarbeitung × Java] Datentyp und objektorientierte Programmierung
Java und JavaScript
XXE und Java
Java-Typkonvertierung (String, int, Datum, Kalender usw.)
Deklaration / Initialisierung / Datentyp der Java-Variablen (Cast und Promotion)
Zum ersten Mal lernen Java # 3 Ausdrücke und Operatoren
Informationen zum Java-Grunddatentyp- und Referenztypspeicher
Konvertieren Sie mit Moshi zwischen Java-Objekten und JSON
Getter und Setter (Java)
[Java] Thread und ausführbar
Java Learning 2 (Lernen Sie die Berechnungsmethode)
Java wahr und falsch
Organisieren Sie den Mechanismus von Java GC
[Java] Vergleich von Zeichenketten und && und ||
[Java] Datentyp ①-Basistyp
Uri → String, String → Uri-Typkonvertierung
[Java, Kotlin] Typabweichung
Feld für den Java-Klassentyp
Typbestimmung in Java
Java # 1 studieren (typischer Typ)
Java - Serialisierung und Deserialisierung
[Java] Argumente und Parameter
timedatectl und Java TimeZone
[Java] Verzweigen und Wiederholen
[Java] Variablen- und Typtypen
Java (Klasse und Instanz)
[Java] Überladen und überschreiben
Endian-Konvertierung mit JAVA
Grundlegende Bediener und Operationen
Suchen Sie die Adressklasse und den Adresstyp aus der IP-Adresse mit Java
[Java Bronze] Lernnotiz (Schnittstelle, statische Methode, Typkonvertierung usw.)