이 글에서는 자바(Java)로 문자의 ASCII 값을 출력하는 방법을 알아봅니다. 원리는 아주 간단합니다. 자바에서 char 타입의 문자를 int 타입 변수에 할당하면 해당 문자의 ASCII 코드 값이 자동으로 저장되므로, 이 값을 화면에 출력하기만 하면 됩니다.
ASCII란 무엇일까요?
ASCII는 American Standard Code for Information Interchange, 즉 '미국 표준 정보 교환 코드'의 약자입니다. 표준 ASCII는 총 128개의 코드로 구성되어 있으며, 각 코드는 0000000부터 1111111까지의 7비트 2진수로 표현할 수 있습니다. 여기에 128개의 문자를 더한 확장 ASCII(Extended ASCII)도 있지만, 확장 영역의 문자는 컴퓨터, 프로그램, 폰트에 따라 조금씩 다를 수 있습니다.
아래는 프로그램 실행 결과의 예시입니다.
입력
문자를 하나 입력하세요: s
출력
s의 ASCII 값은 115 입니다.
알고리즘
Step 1 - 시작 Step 2 - char 타입 변수 my_input 선언 Step 3 - 사용자에게 문자 입력을 요청하거나 문자를 직접 정의 Step 4 - 입력값 읽기 Step 5 - 문자를 int 타입 변수에 할당하여 저장 Step 6 - 결과 출력 Step 7 - 종료
예제 1: Scanner로 사용자 입력 받아 출력하기
이 예제에서는 사용자가 직접 문자를 입력하면 해당 문자의 ASCII 값이 콘솔에 출력됩니다. Scanner 클래스를 사용해 표준 입력(키보드)으로부터 한 글자를 읽어옵니다.
import java.util.Scanner;
public class AsciiValue {
public static void main(String[] args){
char my_input;
System.out.println("필요한 패키지를 가져왔습니다.");
Scanner my_scanner = new Scanner(System.in);
System.out.println("Scanner 객체가 생성되었습니다.");
System.out.print("문자를 하나 입력하세요: ");
my_input = my_scanner.next().charAt(0);
System.out.println("입력된 문자: " + my_input);
int ascii_value = my_input;
System.out.println(my_input + "의 ASCII 값은 " + ascii_value + " 입니다.");
}
}
실행 결과
필요한 패키지를 가져왔습니다. Scanner 객체가 생성되었습니다. 문자를 하나 입력하세요: s 입력된 문자: s s의 ASCII 값은 115 입니다.
예제 2: 미리 정의된 문자의 ASCII 값 출력하기
이번에는 사용자 입력 없이 코드 안에서 문자를 미리 정의한 뒤 그 ASCII 값을 확인합니다. 간단한 테스트나 학습용으로 활용하기 좋은 방식입니다.
public class AsciiValue {
public static void main(String[] args){
char my_input;
my_input = 's';
System.out.println("정의된 문자: " + my_input);
int ascii_value = my_input;
System.out.println(my_input + "의 ASCII 값은 " + ascii_value + " 입니다.");
}
}
실행 결과
정의된 문자: s s의 ASCII 값은 115 입니다.
동작 원리
자바에서 char는 내부적으로 16비트 크기의 양의 정수로 처리되기 때문에, char 값을 int에 대입하면 별도의 형 변환 없이도 해당 문자의 코드 값이 자동으로 저장됩니다. ASCII 범위의 문자라면 그대로 ASCII 값이 되며, 예를 들어 소문자 's'는 10진수로 115에 해당합니다. 명시적으로 형 변환하고 싶다면 int ascii_value = (int) my_input;처럼 작성할 수도 있습니다.