"L"이 있는 경우와 없는 경우의 곱셈 결과가 다른 이유는 무엇입니까?
Java에서 "L"을 사용할 때 곱셈 연산은 다른 결과를 생성합니다. 피연산자 중 하나에 접미사를 붙입니다.
정확한 Long 값을 위해 "L"을 추가합니다
"L"을 추가하면 결과가 Long 값이 됩니다. 정수를 곱하면 결과도 정수가 됩니다. 결과가 정수 범위(2147483647~-2147483648)를 초과하면 오버플로되어 음수가 됩니다.
수식에서 365에 "L"을 추가하면 긴 값임을 명시적으로 지정합니다. 이렇게 하면 다른 정수와 곱한 결과가 긴 값이 되고 정수 범위에서 잘리지 않습니다.
"L" 제외: 잘못된 정수 결과
"L" 없이 정수를 곱하면 결과는 정수가 됩니다. 결과가 정수 범위를 초과하면 "둘러싸서" 다른 값이 됩니다.
예를 들어 곱셈 1000606024365에 "를 추가하지 않고 L"은 잘못된 결과 1471228928을 제공합니다. 이는 결과 31536000000이 정수 범위를 오버플로하여 -1702967296(31536000000의 2의 보수 표현)이 되기 때문입니다.
이진 표현
두 결과의 이진 표현은 차이를 보여줍니다.
"L"을 추가하지 않으면 최상위 4비트가 잘려 잘못된 표현이 됩니다. 0101011110110001 0010110000000000, 이는 잘못된 결과에 해당합니다.
기타 고려 사항
위 내용은 Java 곱셈에서 하나의 피연산자에 'L'을 추가하면 결과가 변경되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!