정처기 감자정처기 감자
공통 기초수/진법

검색

검색어를 입력해 개념, 문제, 필기를 찾습니다.

ASCII 코드 - 문자와 숫자의 관계

코딩C언어Java
읽는데 8분 소요
처음 쓰인 날: 2026-02-03
마지막 수정일: 2026-09-21
조회수: —
선수학습(1개)
  • 이진수 (2진수) 변환

요약

C언어와 Java에서 문자가 숫자로 처리되는 ASCII 코드의 개념을 알아봅니다. 문자 연산, 대소문자 변환, 문자 비교와 언어별 차이를 정리합니다.

ASCII 핵심 정리

컴퓨터가 문자를 2진수로 저장할 때 사용하는 ASCII 값을 정리한 표입니다. C언어와 Java 모두 아래 ASCII 범위에서는 같은 숫자를 사용합니다.

C언어 자료형이나 출력 함수를 아직 모르셔도, 이 페이지에서 필요한 만큼 설명합니다.

Java 자료형이나 출력 함수를 아직 모르셔도, 이 페이지에서 필요한 만큼 설명합니다.

문자ASCII 값설명
'\0'0널 문자 (C 문자열 끝 표시)
'A'65대문자 시작
'Z'90대문자 끝
'a'97소문자 시작
'z'122소문자 끝
'0'48숫자 문자 시작
'9'57숫자 문자 끝

ASCII란?

ASCII(American Standard Code for Information Interchange) 는 문자를 숫자로 표현하는 표준 코드입니다.

컴퓨터는 문자를 직접 저장할 수 없어서, 각 문자에 숫자를 대응시켜 저장합니다.

c
코드 하이라이팅 중…

여기서 char는 문자 하나를 저장하는 자료형이고, printf는 값을 화면에 출력하는 함수입니다. %c는 문자로, %d는 정수로 출력하라는 뜻입니다.

저장 방식출력 형식결과
char c = 'A';%cA
char c = 'A';%d65
char c = 65;%cA
문자 'A'와 숫자 65는 같습니다
char 타입에 'A'를 저장하면 내부적으로 65가 저장됩니다. 출력 형식(%c 또는 %d)에 따라 문자 또는 숫자로 보입니다.

Java의 char는 문자를 나타내는 16비트 정수형입니다. 16비트는 0 또는 1을 담는 자리 16개를 뜻하며, char에는 0부터 65,535까지의 값을 저장할 수 있습니다. 유니코드는 전 세계 문자를 숫자로 표현하는 표준이며, ASCII 문자는 유니코드의 앞부분에 그대로 포함됩니다. 따라서 Java에서도 'A'의 값은 65입니다.

java
코드 하이라이팅 중…

System.out.println()은 괄호 안의 값을 화면에 출력합니다. (int) c는 문자 c를 정수로 바꿔 코드값을 확인하라는 뜻입니다.

저장 방식출력 방식결과
char c = 'A';println(c)A
char c = 'A';println((int) c)65
char c = 65;println(c)A

Java는 계산하지 않은 정수 65가 char 범위 안에 있다는 것을 미리 확인할 수 있어서 char c = 65;를 허용합니다. 반면 upper + 32처럼 계산한 결과는 int가 되므로, 다시 char에 넣을 때 (char) 형 변환이 필요합니다.

Java char 전체가 ASCII인 것은 아닙니다
Java char는 ASCII보다 넓은 유니코드 범위를 표현합니다. 다만 영문자와 숫자는 ASCII와 유니코드 값이 같아서 A=65, a=97, 0=48 규칙을 그대로 사용합니다.

자주 쓰는 ASCII 값

알파벳

범위ASCII 값개수
A ~ Z (대문자)65 ~ 9026개
a ~ z (소문자)97 ~ 12226개
text
코드 하이라이팅 중…

대문자와 소문자의 차이는 32입니다. ('a' - 'A' = 97 - 65 = 32)

A = 65, a = 97만 외우세요!
알파벳은 순서대로 1씩 증가하므로, A(65)와 a(97)만 알면 나머지는 모두 계산할 수 있습니다. 예: A가 0번째, B가 1번째... K는 10번째이므로 'K' = 65 + 10 = 75입니다.

숫자 문자

범위ASCII 값
'0' ~ '9'48 ~ 57
text
코드 하이라이팅 중…
숫자 0과 문자 '0'은 다릅니다
숫자 0은 값이 0이고, 문자 '0'은 ASCII 값 48입니다. '0' - 48 = 0 이므로, 문자 숫자를 실제 숫자로 바꾸려면 '0'을 빼면 됩니다.

널 문자

널 문자 '\0' 의 ASCII 값은 0입니다. 다만 문자열에서의 역할은 언어마다 다릅니다.

C언어에서 작은따옴표('A')는 문자 하나, 큰따옴표("HI")는 문자열입니다. 문자열은 마지막에 자동으로 널 문자가 붙습니다.

c
코드 하이라이팅 중…
인덱스012
문자'H''I''\0'
ASCII72730

널 문자의 ASCII 값이 0이기 때문에, 조건문에서 문자열 끝을 감지할 수 있습니다. '\0'은 0(거짓)이므로 반복문이 자동으로 종료됩니다. 이 원리는 포인터 단원에서 자세히 다룹니다.

Java의 String은 길이를 따로 관리하므로 널 문자로 문자열의 끝을 표시하지 않습니다. \0이 들어가면 문자열 안의 문자 하나로 취급됩니다.

java
코드 하이라이팅 중…
Java 문자열은 널 문자에서 끝나지 않습니다
Java에서 널 문자의 값은 0이지만 String의 끝 표시가 아닙니다. C 문자열 규칙과 혼동하지 마세요.

문자 연산

문자는 숫자이므로 사칙연산과 비교가 가능합니다.

문자 뺄셈

c
코드 하이라이팅 중…
java
코드 하이라이팅 중…

Java에서 char를 산술 연산하면 두 문자는 int로 자동 변환되어 계산됩니다. 따라서 'E' - 'A'의 결과 타입도 char가 아니라 int입니다.

연산계산결과
'E' - 'A'69 - 654
'C' - 'A'67 - 652
'5' - '0'53 - 485
ASCII 코드를 몰라도 풀 수 있습니다
알파벳은 연속된 숫자이므로, 두 문자 사이의 칸 수를 세면 됩니다. 'E' - 'A'는 A → B → C → D → E로 4칸이니까 4입니다. 'A' + 4의 코드값은 E에 해당하는 69입니다. 숫자 문자도 동일하게 '5' - '0'은 0부터 5까지 세면 5입니다.

문자 비교

c
코드 하이라이팅 중…
java
코드 하이라이팅 중…

같은 대소문자끼리는 알파벳 순서대로 ASCII 값이 커지므로 문자 비교 결과도 알파벳 순서와 같습니다. 대문자와 소문자가 섞이면 ASCII 숫자값을 직접 비교해야 합니다. 예를 들어 'a'(97)는 'A'(65)보다 큽니다.

비교계산결과
'D' > 'C'68 > 67참
'A' < 'Z'65 < 90참
'a' > 'A'97 > 65참

대소문자 변환

대문자와 소문자의 ASCII 차이는 32입니다.

c
코드 하이라이팅 중…

Java에서 char + int의 결과는 int이므로 다시 char에 넣으려면 명시적 형 변환이 필요합니다.

java
코드 하이라이팅 중…
Java에서는 (char) 형 변환이 필요합니다
upper + 32의 결과 타입은 int입니다. char 변수에 바로 대입하면 컴파일 오류가 나므로 (char)로 다시 변환해야 합니다.
변환방법예시
대문자 → 소문자코드값 + 32'A'(65) + 32 = 97 ('a')
소문자 → 대문자코드값 - 32'a'(97) - 32 = 65 ('A')

숫자 문자 → 정수 변환

문자 '5'를 숫자 5로 바꾸려면 '0'을 빼면 됩니다.

c
코드 하이라이팅 중…
java
코드 하이라이팅 중…
문자ASCII- '0' (48)결과
'0'4848 - 480
'5'5353 - 485
'9'5757 - 489

ctype.h 문자 판별 함수

ASCII 코드를 활용한 문자 판별은 ctype.h 헤더의 함수를 사용하면 더 간편합니다.

함수설명
isupper(c)대문자인지 판별
islower(c)소문자인지 판별
isdigit(c)숫자 문자인지 판별

정보처리기사 실기 대비 문제

문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)
후수학습(2개)
  • C언어 ctype.h 문자 판별 함수
  • Java 출력 함수 — print, println, printf와 문자열 결합
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999