JAVA/메서드 정리

Java의 char 타입 연산: 문자 차이를 계산하고 타입 변환 이해하기

min민 2024. 12. 6.

Java에서 char 간의 연산이 어떻게 동작하는지에 대해 알아보자. char는 문자 데이터를 저장하는 타입이지만, 내부적으로는 아스키 코드나 유니코드 값으로 표현되는 숫자 값이 있다. 예를 들어, 문자 'A'는 아스키 코드 값으로 65를 가지고, 문자 'B'는 66을 가진다. 이렇게 char는 숫자 값으로 저장되어 있어, 두 char 값을 연산할 때 그 숫자 값을 기반으로 계산이 이루어진다.

char - char 연산

Java에서 char 타입 간의 연산을 수행할 때는 두 문자의 아스키 코드 값을 빼는 방식으로 동작한다. 예를 들어, '1' - '0'을 계산해보면, 각각의 문자에 해당하는 아스키 코드 값은 49와 48이다. 이를 뺄셈으로 계산하면 49 - 48 = 1이 되어, 결과는 1이 된다.

결과 타입은 int

char 타입은 내부적으로 16비트 부호 없는 값으로 저장된다. 하지만 두 char 간의 연산이 이루어질 때, 그 결과는 자동으로 int 타입으로 변환된다. 이는 char 간의 연산이 계산된 후, 그 결과를 더 넓은 타입인 int로 저장하기 때문이다. 따라서 char - char 연산을 하면 항상 int 값이 반환된다.

 

예시 코드

char ch1 = '1';  // '1'의 아스키 값은 49
char ch2 = '0';  // '0'의 아스키 값은 48

int result = ch1 - ch2;  // 49 - 48 = 1
System.out.println(result);  // 출력: 1

 

이 코드에서 ch1과 ch2는 각각 문자 '1'과 '0'이다. 이 두 문자의 아스키 값은 49와 48이며, 이를 빼면 결과는 1이 된다. 이 결과는 int 타입으로 저장된다.

결론

char - char 연산을 수행하면, 각 문자의 아스키 코드 값 차이를 계산하게 된다. 그 결과는 항상 int 타입으로 반환된다. char는 문자 데이터지만, 실제로는 숫자 값으로 처리되기 때문에 문자 간의 연산이 가능하다.

 

 

 

 

 

댓글