División de enteros en Java

Rashmi Patidar 12 octubre 2023
División de enteros en Java

El artículo presenta una explicación detallada de lo que sucede internamente cuando dividimos dos números enteros.

En el siguiente código de Java, hay cuatro declaraciones de Java. Cada línea imprime una salida diferente según los números que se dividen entre sí.

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);
  }
}
  1. En el caso 1, un número entero mayor se divide con un número entero menor. La salida resultante es un número entero 1. Matemáticamente, cuando dividimos diez por nueve, esto da como resultado un número repetitivo que es 1.1111.... Pero en el lenguaje Java, cuando un entero divide a otro entero, desecha el resto y mantiene el cociente. Por tanto, la salida resultante es un número entero.
  2. En el caso 2, cuando dividimos el número entero negativo en un número entero positivo, esto da como resultado un número entero como -1. Como se indicó anteriormente, el número entero desecha el resto y mantiene el cociente. Por tanto, el valor resultante es un número entero negativo.
  3. En el caso 3, existe el caso inverso donde el numerador es un número entero positivo y el denominador es un número entero negativo. La salida resultante es -1. Nuevamente, el signo negativo en el numerador o denominador no importa mucho. Simplemente divide los dos números sin guardar ningún resto. Y, por lo tanto, la salida es nuevamente una negación de un entero.
  4. En el caso 4, el denominador es mayor que el numerador, lo que da como resultado un número menor que 1. Como se indicó anteriormente, el número se trunca después de cero e imprime el valor 0 como salida.
  5. En el caso 5, estamos encasillando manualmente la salida a un valor float.

Primero entendamos el encasillamiento.

Typecasting es el proceso de convertir un tipo de datos en otro, y podemos hacerlo de forma manual o automática.

  1. Ampliación encasillada: a menudo se denomina conversión implícita. En este tipo de conversión, un tipo de datos más pequeño se convierte en un tipo de datos más alto. El compilador realiza esta conversión automáticamente.
  2. Estrechamiento del encasillamiento: a menudo se denomina conversión explícita. En este tipo de conversión, un tipo de datos más grande se convierte en un tipo de datos más pequeño, lo que resulta en la pérdida de datos.

Entonces, en el caso 3, los datos truncados implícitamente por el compilador se convierten manualmente en un número float, lo que da como resultado un número racional completo. Este número muestra datos de hasta 8 dígitos.

De manera similar, en el caso 6, convertiremos manualmente la división entera a un valor double. Así que esto dará como resultado un número decimal que muestra números de hasta 16 dígitos.

Consulte la sección a continuación para ver la salida del código anterior.

1
-1
-1
0
1.1111112
1.1111111111111112
Rashmi Patidar avatar Rashmi Patidar avatar

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

Artículo relacionado - Java Integer