Ganzzahlige Division in Java
Der Artikel enthält eine detaillierte Erklärung dessen, was intern passiert, wenn wir zwei ganze Zahlen teilen.
Im folgenden Java-Code gibt es vier Java-Anweisungen. Jede Zeile gibt unterschiedliche Ausgaben aus, basierend auf den Zahlen, die sich voneinander trennen.
package integer_division;
public class IntegerDivision {
public static void main(String[] args) {
System.out.println(10 / 9);
System.out.println(-10 / 9);
System.out.println(10 / -9);
System.out.println(10 / 19);
System.out.println((float) 10 / 9);
System.out.println((double) 10 / 9);
}
}
- In Fall 1 wird eine größere Ganzzahl durch eine kleinere Ganzzahl geteilt. Die resultierende Ausgabe ist eine Ganzzahl
1
. Wenn wir mathematisch zehn durch neun teilen, ergibt dies mathematisch eine sich wiederholende Zahl, die1.1111...
ist. Wenn in der Java-Sprache eine Ganzzahl eine andere Ganzzahl teilt, wird der Rest weggeworfen und der Quotient beibehalten. Daher ist die resultierende Ausgabe eine ganze Zahl. - Wenn wir in Fall 2 die negative Ganzzahl in eine positive Ganzzahl teilen, ergibt dies eine Ganzzahl als
-1
. Wie oben angegeben, wirft die Ganzzahl den Rest weg und behält den Quotienten bei. Daher ist der resultierende Wert eine negative ganze Zahl. - In Fall 3 gibt es den umgekehrten Fall, in dem der Zähler eine positive ganze Zahl und der Nenner eine negative ganze Zahl ist. Die resultierende Ausgabe ist
-1
. Auch hier spielt das negative Vorzeichen im Zähler oder Nenner keine große Rolle. Es teilt einfach die beiden Zahlen, ohne den Rest zu behalten. Und daher ist die Ausgabe wieder ein Negativ der ganzen Zahl. - In Fall 4 ist der Nenner größer als der Zähler, was zu einer Zahl führt, die kleiner als
1
ist. Wie oben angegeben, wird die Zahl nach Null abgeschnitten und der Wert0
als Ausgabe ausgegeben. - In Fall 5 geben wir die Ausgabe manuell in einen
float
-Wert ein.
Lassen Sie uns zuerst das Typecasting verstehen.
Typecasting
ist der Prozess der Konvertierung eines Datentyps in einen anderen, und wir können dies entweder manuell oder automatisch tun.
Typecasting erweitern
: Es wird oft alsimplizite Konvertierung
bezeichnet. Bei dieser Art von Casting wird ein kleinerer Datentyp in einen höheren Datentyp konvertiert. Der Compiler führt dieses Casting automatisch durch.Narrowing Typecasting
: Es wird oft alsexplizite Konvertierung
bezeichnet. Bei dieser Art der Umwandlung wird ein größerer Datentyp in einen kleineren Datentyp umgewandelt, was zu Datenverlust führt.
In Fall 3 werden die vom Compiler implizit abgeschnittenen Daten manuell in die Zahl float
umgewandelt, was zu einer vollständigen rationalen Zahl führt. Diese Nummer zeigt Daten mit bis zu 8 Ziffern an.
In ähnlicher Weise werden wir in Fall 6 die Ganzzahldivision manuell auf einen double
Wert kasten. Dies führt also zu einer Dezimalzahl, die Zahlen mit bis zu 16 Stellen anzeigt.
Im folgenden Abschnitt finden Sie die Ausgabe des obigen Codes.
1
-1
-1
0
1.1111112
1.1111111111111112
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn