관련 글
C언어
printf 함수 숫자 출력
printf 출력함수를 이용하여 서식문자로 숫자를 출력해보도록 하겠습니다.
다음 예를 살펴보겠습니다.
#include <stdio.h> intmain(void){ //%d 10진수 printf("%d + %d = %d\n", 3, 7, 3+7); printf("%d - %d = %d\n", 3, 7, 3-7); printf("문자열 상수: %s \n", "10+20"); printf("10진수 %d은 16진수로 %x, 8진수로 %o\n", 30, 30, 30); printf("문자: %c \n", 65); printf("문자: %c \n", 97); return 0; }
위의 코드는 아래의 사진과 같이 출력됩니다.
%d는 10진수를 출력하는 서식문자이기에 3+7과 3-7의 결과값을 출력했습니다. 그런데 10+20의 값은 30이 나오는 것이 아니라 10+20의 값 자체가 그대로 출력되는 모습을 보게됩니다. 이는 문자열을 표시하는 ""(큰 따옴표) 사이에 10+20의 값이 있기 때문이죠. 만약 큰 따옴표를 사용하지 않고 10+20을 사용했더라면 30의 값이 출력되는 모습을 보게 될 것입니다.
%d는 10진수, %x는 16진수, %o는 8진수를 나타내는 서식문자입니다. 따라서 각각 30이라는 수를 출력했을 때, 30(10진수), 1e(10진수), 36(8진수)으로 출력됩니다.
아스키 코드(ASCII Code)
특이한 점이 있습니다. 숫자 65를 입력했는데 왜 문자 A와 a가 나올까요? 이는 아스키코드와 연관이 있기 때문입니다. 컴퓨터의 CPU는 문자를 인식할 수 없으며 숫자 밖에 알지 못합니다. 따라서 컴퓨터는 문자 또한 숫자형태로 인식하는데 아스키 코드를 참조해서 숫자를 문자로 표현할 수 있게 되죠.
아스키 코드표(ASCII Code Table)
<출처: http://codedragon.tistory.com/889>
아래는 위의 표에서 제어문자(비인쇄 문자)에 대해서만 다룬 표입니다. 제어 문자 자리에는 Null을 제외하고 특수문자를 배정하여 사용합니다.
<출처: www.printf.co.kr>
아래는 다시 한번 종합적으로 정리한 아스키코드 표(ASCII Table)입니다.
<출처: 이재욱님이 만든 ASCII Table>
아스키코드도 보았으니 위의 코드와 출력화면을 다시 살펴보겠습니다.
대문자 A의 아스키코드는 10진수: 65,
소문자 a의 아스키코드는 10진수: 97입니다.
따라서 위의 코드에서 65와 97을 아스키코드를 통해 문자로 치환하여 나타낸 것입니다. 이처럼 같은 알파벳이라도 대문자와 소문자는 아스키 코드값이 다릅니다. 따라서 코드 상의 대문자와 소문자는 엄연히 다르다는 사실 잊지 마시기 바랍니다.
'Code.D IT 강좌 > C언어' 카테고리의 다른 글
[C언어 강좌] 변수 선언 및 초기화 (0) | 2017.05.20 |
---|---|
[C언어 강좌] 특수 문자 (0) | 2017.05.18 |
[C언어] printf함수의 서식문자, 주석문 (0) | 2017.05.16 |
C언어 기본 틀/Hello World 출력, 프로그래밍의 시작을 알리다 (0) | 2017.05.11 |
[데이터 저장 방법] 파일시스템/DBMS 장단점 (0) | 2017.04.14 |