Java의 Char 데이터 유형의 산술 연산
Java에서 char 데이터를 작업할 때 산술 연산의 동작을 이해하는 것이 중요합니다. 다음 표현식을 고려하십시오.
'a' + 'b'
처음에 가정할 수 있는 것과는 달리 이 추가의 결과는 char이 아니라 int입니다. 이는 두 개의 문자를 더할 때 작업이 수행되기 전에 둘 다 int로 변환된다는 Java의 이진 숫자 승격 규칙 때문입니다.
이 승격은 Java에 더 작은 데이터에 대한 전용 산술 명령어가 부족하기 때문에 발생합니다. 문자 및 바이트와 같은 유형. 이러한 더 작은 유형에 대한 연산을 시뮬레이션하기 위해 컴파일러는 int 산술 명령어를 사용합니다.
'a' 및 'b'에 대한 유니코드 코드 포인트가 97이기 때문에 'a' 'b'의 int 결과는 195입니다. 및 98입니다.
그러나 이 동작은 =와 같은 복합 할당 연산자에는 적용되지 않는다는 점에 주목할 가치가 있습니다. 예를 들어, 다음 코드는 컴파일 오류를 발생시킵니다.
char x = 1, y = 2; x = x + y; // Error: possible loss of precision
이 오류를 방지하려면 char에 대한 명시적인 캐스트가 필요합니다.
x = (char)(x + y);
또는 복합 할당 연산자를 사용할 수도 있습니다. 자동으로 변환을 수행하는 데 사용됩니다.
x += y;
'a' 'b' 표현식의 데이터 유형을 결정하려면 다음을 수행할 수 있습니다. 사용:
System.out.println(((Object)('a' + 'b')).getClass());
이것은 java.lang.Integer 클래스를 인쇄하여 결과가 int임을 확인합니다.
위 내용은 Java는 `char` 데이터 유형에 대한 산술 연산을 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!