Java의 정수 나눗셈
Rashmi Patidar
2023년10월12일
이 기사에서는 두 정수를 나눌 때 내부적으로 어떤 일이 발생하는지에 대한 자세한 설명을 소개합니다.
아래 Java 코드에는 4 개의 Java 문이 있습니다. 각 줄은 서로 나누는 숫자에 따라 다른 출력을 인쇄합니다.
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의 경우 큰 정수를 작은 정수로 나눕니다. 결과 출력은 정수
1
입니다. 수학적으로 10을 9로 나누면 반복되는 숫자는1.1111...
이됩니다. 그러나 Java 언어에서는 정수가 다른 정수를 나눌 때 나머지를 버리고 몫을 유지합니다. 따라서 결과 출력은 정수입니다. - 경우 2에서 음의 정수를 양의 정수로 나누면 정수는
-1
이됩니다. 위에서 언급했듯이 정수는 나머지를 버리고 몫을 유지합니다. 따라서 결과 값은 음의 정수입니다. - 경우 3의 경우 분자가 양의 정수이고 분모가 음의 정수인 경우가 반대입니다. 결과 출력은
-1
입니다. 다시 말하지만, 분자 나 분모의 음수 부호는 그다지 중요하지 않습니다. 나머지를 유지하지 않고 단순히 두 숫자를 나눕니다. 따라서 출력은 다시 정수의 부정입니다. - 4의 경우 분모가 분자보다 커서
1
보다 작은 숫자가됩니다. 위에서 언급했듯이 숫자는 0 이후에 잘리고 출력으로0
값을 인쇄합니다. - 경우 5의 경우 출력을
float
값으로 수동 형변환합니다.
먼저 형변환을 이해합시다.
Typecasting
은 한 데이터 유형을 다른 데이터 유형으로 변환하는 프로세스이며 수동 또는 자동으로 수행 할 수 있습니다.
Widening Typecasting
: 종종암시 적 변환
이라고합니다. 이 유형의 캐스팅에서 더 작은 데이터 유형은 더 높은 데이터 유형으로 변환됩니다. 컴파일러는이 캐스팅을 자동으로 수행합니다.Narrowing Typecasting
: 종종명시 적 변환
이라고합니다. 이 유형의 캐스트에서는 더 큰 데이터 유형이 더 작은 데이터 유형으로 캐스트되어 데이터가 손실됩니다.
따라서 경우 3의 경우 컴파일러에 의해 암시 적으로 잘린 데이터는 수동으로float
숫자로 캐스트되어 완전한 유리수가됩니다. 이 번호는 최대 8 자리의 데이터를 표시합니다.
마찬가지로 경우 6에서 정수 나눗셈을double
값으로 수동으로 캐스팅합니다. 따라서 최대 16 자리 숫자를 표시하는 10 진수가됩니다.
위 코드의 출력은 아래 섹션을 참조하십시오.
1
-1
-1
0
1.1111112
1.1111111111111112
작가: Rashmi Patidar
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