강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

dhkdxo12님의 프로필 이미지
dhkdxo12

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

ASCII 코드

ASCII 코드 변환 관련

작성

·

18

0

ASCII 코드 강의 챕터

9:10

char lower = 'a';에서 a는 문자 취급하고

char upper = (char)(lower-32); 여기에서

(char)은 문자 취급하는 구문이고

(lower-32) 관련하여 숫자 취급하는 int 같은 것이 없는데 lower는 a 문자로 확인이 됩니다.

a 문자 관련하여 왜 ASCII 코드 97로 변환하여 32를 빼는지 이해가 되지 않습니다.

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

안녕하세요,

계속 값 그 자체를 문자라고 생각하셔서 그렇습니다.

문자든 숫자든 다 똑같이 컴퓨터에게는 이진수일 뿐입니다.

출력하는 포맷이 %d이면 십진수로, %c면 문자로 나오는 것이죠.

lower는 문자 a이자 동시에 아스키코드로도 해석될 수 있는 데이터입니다.

그래서 32를 빼면 똑같이 그 데이터에서 32가 차감되고, 그것을 %c 형태로 출력하면 대문자가 나오는 것이죠.

char로 선언해서 데이터를 받았다고 하더라도, 숫자로 출력하면 아스키코드가 나오는 것과 같은 원리입니다.

 

반대로 문자로 선언한 변수에 숫자를 넣어버려서 출력하는 예제 코드도 드립니다.

#include <stdio.h>

int main() {
    char ch1 = 65;      // ASCII 코드 65는 'A'
    char ch2 = 97;      // ASCII 코드 97은 'a'
    char ch3 = 72;      // ASCII 코드 72는 'H'
    
    printf("ASCII 65: %c\n", ch1);
    printf("ASCII 97: %c\n", ch2);
    printf("ASCII 72: %c\n", ch3);
    
    // 반복문으로 여러 문자 출력
    printf("\nA-Z 출력: ");
    for(int i = 65; i <= 90; i++) {
        printf("%c ", (char)i);
    }
    
    return 0;
}

 

출력값:

ASCII 65: A

ASCII 97: a

ASCII 72: H

A-Z 출력: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

dhkdxo12님의 프로필 이미지
dhkdxo12
질문자

문자 형식의 숫자 관련하여

'5'-'0'이랑 5-'0'이랑 같은거에요?

0

안녕하세요, 인프런 AI 인턴입니다. dhkdxo12님.

ASCII 코드 변환과 관련된 질문 주셨네요. 문자와 숫자 연산에 대한 이해를 돕기 위한 설명을 드리겠습니다. 비슷한 주제를 다룬 기존 질문과 답변도 참고해주시면 이해에 도움이 될 것입니다.

  1. ASCII 코드와 문자 연산:
    • char lower = 'a';에서 ‘a’는 문자로 저장되지만, 컴퓨터에서는 이 문자를 ASCII 코드 값으로 저장합니다. ASCII 코드상에서 ‘a’는 97이라는 숫자값을 가지고 있습니다.
    • char upper = (char)(lower-32); 이 구문에서는 lower가 97로 자동 변환되어 계산되며, 이 계산은 ‘a’의 ASCII 코드인 97에서 32를 빼서 65라는 새로운 숫자 값을 만듭니다. 65는 ‘A’에 해당하는 ASCII 코드입니다.
    • (char) 형변환은 계산 결과를 다시 문자로 변화시킵니다.

아래 링크에서 비슷한 질문과 그에 대한 답변을 확인해 보실 수 있습니다:
- ASCII코드 질문: 여기에서는 문자와 ASCII 코드 간 연산에 대한 이해를 돕는 설명을 하고 있습니다.
- ASCII 코드와 숫자값: 문자와 숫자 값 변환의 예제에 대해 다룹니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

dhkdxo12님의 프로필 이미지
dhkdxo12

작성한 질문수

질문하기