Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바(Java)로 문자의 ASCII 값 출력하는 프로그램 만들기

이 글에서는 자바(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;처럼 작성할 수도 있습니다.