유형 변환에서 Java의 이상한 동작: -124 미스터리 공개
Java에서 바이트에 정수를 할당하려고 할 때 흥미로운 현상이 발생합니다. 관찰이 발생합니다. 정수 값 132는 바이트로 캐스팅될 때 -124로 렌더링됩니다. 이 수수께끼 같은 결과는 처음에는 혼란스러워 보일 수 있습니다.
2의 보수 퍼즐 탐색
이 수수께끼를 풀려면 Java의 기본 데이터 유형과 그 표현을 자세히 살펴보는 것이 중요합니다. Java에서는 int 및 byte와 같은 정수 유형이 2의 보수 표기법을 사용하여 부호가 지정됩니다. 이 표기법을 사용하면 최상위 비트는 부호를 나타내며 숫자가 더 큰 비트 크기로 확장되어도 최상위 비트로서의 값을 유지합니다.
Seeking Unsigned Bliss
대부분의 시나리오에서는 바이트를 부호 없는 값으로 해석하고 모든 부호 정보를 삭제하는 것이 바람직합니다. 이는 비트 연산을 통해 달성할 수 있습니다. 예를 들어, 부호 있는 바이트에 마스크가 0xff인 비트 AND를 적용하면 부호 비트가 효과적으로 제거되어 부호 없는 값이 드러납니다.
The Unmasking Ritual Unraveled
The 프로세스는 다음과 같이 전개됩니다.
이 기술을 사용하면 부호 있는 정수에서 부호 없는 바이트 값을 원활하게 추출할 수 있습니다.
결론
Java의 int에서 바이트로의 변환은 기본 2의 보수 표기법으로 인해 미묘하면서도 매혹적인 동작을 도입할 수 있습니다. 이러한 미묘한 차이를 이해하면 예상치 못한 -124 출력 뒤에 숨은 수수께끼를 풀어 개발자가 Java 애플리케이션에서 데이터 유형을 효과적으로 조작할 수 있습니다.
위 내용은 Java 정수가 132인데 바이트 결과가 -124로 변환되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!