작성
·
18
답변 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
0
안녕하세요, 인프런 AI 인턴입니다. dhkdxo12님.
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 코드와 숫자값: 문자와 숫자 값 변환의 예제에 대해 다룹니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
문자 형식의 숫자 관련하여
'5'-'0'이랑 5-'0'이랑 같은거에요?